Cómo establecer el DefaultRoute a otra ruta en React Router

Tengo lo siguiente:

  <Route name="app" path="/" handler={App}>
    <Route name="dashboards" path="dashboards" handler={Dashboard}>
      <Route name="exploreDashboard" path="exploreDashboard" handler={ExploreDashboard} />
      <Route name="searchDashboard" path="searchDashboard" handler={SearchDashboard} />
      <DefaultRoute handler={DashboardExplain} />
    </Route>
    <DefaultRoute handler={SearchDashboard} />
  </Route>

Cuándo utilizando el DefaultRoute, SearchDashboard renderiza incorrectamente desde cualquier *Dashboard necesita renderizar dentro de Dashboard.

Me gustaría que mi DefaultRoute dentro de la "app" Ruta para apuntar a la Ruta "searchDashboard". ¿Es esto algo que pueda hacer con React Router, o debería usar Javascript normal (para una redirección de página) para esto?

Básicamente, si el usuario va a la página de inicio quiero enviarlos en su lugar al tablero de búsqueda. Así que supongo que estoy buscando una función de React Router equivalente a window.location.replace("mygreathostname.com/#/dashboards/searchDashboard");.

Solución

Puede utilizar Redirect en lugar de DefaultRoute

Actualización 2019-08-09 para evitar problemas con el refresco usa esto en su lugar, gracias a Ogglas

Comentarios (5)

Yo estaba tratando incorrectamente de crear una ruta por defecto con:


Pero esto crea dos rutas diferentes que renderizan el mismo componente. Esto no sólo es inútil, sino que puede causar fallos en su interfaz de usuario, es decir, cuando se está estilando `elementos basados enthis.history.isActive()`.

La forma correcta de crear una ruta por defecto (que no sea la ruta del índice) es usar ``:


Esto se basa en react-router 1.0.0. Ver https://github.com/rackt/react-router/blob/master/modules/IndexRedirect.js.

Comentarios (5)

La respuesta de Jonathan no me ha funcionado. Estoy usando React v0.14.0 y React Router v1.0.0-rc3. Esto funcionó:

``.

Así que en Matthew's Caso, creo que él'd quiere:

``.

Fuente: https://github.com/rackt/react-router/blob/master/docs/guides/advanced/ComponentLifecycle.md

Comentarios (2)