2017-08-20 1 views
0

Ich habe eine Routen-Datei, die wie erwartet funktioniert:Warum stimmt meine Route nicht mit React Router 4 überein?

<Route path="/app" render={({match}) => (
    <Switch> 
     <Route exact path={`${match.url}/`} component={Home} /> 
     <Route path={`${match.url}/error`} component={Error} /> 
    </Switch> 
</Route> 

Aber wenn ich zu hart Code, um die Routen versuchen, funktioniert es nicht. Zum Beispiel:

<Route path="/app" render={({match}) => (
    <Switch> 
     <Route exact path={`app/`} component={Home} /> 
     <Route path={`app/error`} component={Error} /> 
    </Switch> 
</Route> 

Natürlich harte Kodierung ist nicht das, was ich wirklich will, aber im Fall wollte ich so etwas wie diese

<Route path="/app"> 
    <Switch> 
     <Route exact path="app/" component={Home} /> 
     <Route path="app/error" component={Error} /> 
    </Switch> 
</Route> 

und erstellen Sie die App mit den Children der Route und nicht tun die render prop. Was mache ich falsch oder wie kann ich das erreichen?

Antwort

1

Der Reactor-Router V4 verwendet keine verschachtelten Routen.

<Route path="/app"> passt alles, was mit /app beginnt, was ich glaube nicht, was Sie wollen.

Dies sollte ausreichen, um zu tun, was Sie wollen:

<Switch> 
    <Route exact path={`/app/error`} component={Error} /> 
    <Route path={`/app`} component={Home} /> 
</Switch> 
Verwandte Themen