2017-08-18 4 views
0

Ich versuche, Routen in Reagieren Router zu verschachteln, aber \sports\cricket Sub-Routen wie diese werden nicht angezeigt. Es folgt der Code:Subrouten funktioniert nicht in Reagieren Router v4

index.js

const Root =() => { 
    return (
    <Router> 
     <div> 
     <Route exact path="/" component={Home}/> 
     <Route path="/sports" component={Sports} /> 
     </div> 
    </Router> 
); 
}; 

sports.js

return (
     <div> 
     <Route path="cricket" component={Cricket} /> 
     </div> 
    ); 

Die Konsolenprotokolle Fehler 404, wenn ich versuche zu bekommen /sports/cricket:

enter image description here

Bearbeiten 1: Die verschachtelte Route innerhalb der Komponente wurde verschoben.

+1

Was versions Router reagieren? –

+0

Reagieren Router v4 –

+0

Mögliches Duplikat von [Angeben von untergeordneten Routen in Reag-Router v4] (https://stackoverflow.com/questions/44452858/specify-child-routes-in-reactor-router-v4) –

Antwort

0

Verschachtelte Routen funktionieren in v4 nicht. Weisen Sie Unterrouten in der Komponente zu, auf die die übergeordnete Route verweist. Wie folgt aus:

index.js

const Root =() => { 
    return (
    <Router history={browserHistory}> 
     <div> 
     <Route exact path="/" component={Home}/> 
     <Route path="/sports" component={Sports}/> 
     </div> 
    </Router> 
); 
}; 

sports.js

return (
    <div> 
    <Route path="/sports/cricket" component={Cricket} /> 
    </div> 
); 
+0

Immer noch nicht Arbeit. Wirft den gleichen Fehler in der Konsole. –

+0

Anstelle von 'BrowserRouter' ersetzen Sie es überall durch' HashRouter' und sehen Sie, ob 'localhost: 3000/#/sports/cricket' funktioniert. Der Grund dafür ist, dass, wenn Sie Ihre Routen nicht auf dem Server konfiguriert haben, 404 auf den Browserrouten nicht gefunden wird. –

Verwandte Themen