Wie setze ich die DefaultRoute auf eine andere Route in React Router
Habe ich Folgendes:
<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>
Wenn mit der DefaultRoute, SearchDashboard rendert falsch, da jede *Dashboard muss gerendert im Dashboard.
Ich würde gerne für meine DefaultRoute in der "app" - Route auf der Route "searchDashboard". Ist das etwas, was ich tun kann, Reagieren mit Router, oder sollte ich normalen Javascript (für eine Seite umleiten)?
Grundsätzlich, wenn der Benutzer geht auf die Homepage, ich möchte Ihnen statt der Suche dashboard. Also ich denke, ich bin auf der Suche nach einem Reagieren, Router-Funktion entspricht window.location.replace("mygreathostname.com/#/dashboards/searchDashboard");
InformationsquelleAutor der Frage Matthew Herbst | 2015-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Umleiten, anstatt DefaultRoute
InformationsquelleAutor der Antwort Jonatan Lundqvist Medén
Ich war falsch zu versuchen, um eine default-Pfad mit:
Aber das schafft zwei verschiedene Wege, die machen die gleiche Komponente. Dies ist nicht nur sinnlos, sondern kann es zu Pannen in der Benutzeroberfläche, d.h., wenn Sie styling
<Link/>
Elemente, basierend aufthis.history.isActive()
.Den richtigen Weg zu erstellen Sie eine default-route (das ist nicht die index-route) ist die Verwendung
<IndexRedirect/>
:Diese basiert auf reagieren-router 1.0.0. Sehen https://github.com/rackt/react-router/blob/master/modules/IndexRedirect.js.
InformationsquelleAutor der Antwort Seth
Das problem bei der Verwendung
<Redirect from="/" to="searchDashboard" />
ist, wenn Sie eine andere URL, sagen/indexDashboard
und der Nutzer die Aktualisierung oder bekommt eine URL, die an Sie gesendet, wird der Benutzer umgeleitet, um/searchDashboard
sowieso.Wenn Sie wan ' T Benutzer in der Lage sein, aktualisieren Sie die Seite oder senden Sie URLs verwenden:
Verwenden Sie dies, wenn
searchDashboard
hinter login:InformationsquelleAutor der Antwort Ogglas
Jonathan ' s Antwort scheint nicht für mich arbeiten. Ich bin mit Reagieren v0.14.0 und Reagieren Router v1.0.0-rc3. Dies Tat:
<IndexRoute component={Home}/>
.So, in Matthäus der Fall, ich glaube, er würde wollen:
<IndexRoute component={SearchDashboard}/>
.Quelle: https://github.com/rackt/react-router/blob/master/docs/guides/advanced/ComponentLifecycle.md
InformationsquelleAutor der Antwort dwilt
Für diejenigen, die in 2017-das ist die neue Lösung mit
IndexRedirect
:InformationsquelleAutor der Antwort Kevin Hernandez
InformationsquelleAutor der Antwort user3889017
Die bevorzugte Methode ist der router reagieren IndexRoutes Komponente
Verwenden Sie es wie folgt (entnommen aus der router reagieren docs weiter oben verlinkt):
InformationsquelleAutor der Antwort Marc Costello
Ich lief in ein ähnliches Problem, ich wollte eine Standard-route-handler, wenn keine der route-handler abgestimmt.
Meine Lösung ist die Verwendung einer wildcard als der Wert für path. ie
Auch stellen Sie sicher, es ist der Letzte Eintrag in der Route-definition.
InformationsquelleAutor der Antwort Anextro