Ich versuche, die Route Requisiten zu einer Layout-Komponente, die erste API-Anfragen mit der Route Requisiten führt, das Problem ist, dass diese Route Requisiten nur an das Kind übergeben werden Routen.React Router 4: Route Requisiten zu Layout-Komponente
<BrowserRouter>
<Switch>
<AppLayout> // This AppLayout performs API requests
// with the :route param in the child routes.
<Route path="/some/:route" component={SomeComponent} />
<Route path="/some/other/:route" component={OtherComponent} />
</AppLayout>
</Switch>
</BrowserRouter>
Offensichtlich, sobald der Benutzer trifft die /some/:route
Strecke, das Layout worden wäre schon gemacht. Ich habe versucht, so etwas wie dies zu tun:
<BrowserRouter>
<Route path="/some/:route" render={(props) =>
(<AppLayout {...props}><SomeComponent /></AppLayout>)} />
</BrowserRouter>
Das funktioniert aber die AppLayout wäre abgemeldet und wieder montiert jedes Mal, wenn ich auf eine andere Strecke gehen, um das gleiche Layout.
Mit reagieren-Router 3, kann ich so etwas tun:
<Router history={browserHistory}>
<Route path="/" component={AppLayout}>
<Route path="/some/:route" component={SomeComponent} />
<Route path="/some/other/:route" component={OtherComponent} />
</Route>
</Router>
Und die Strecke Requisiten würden auf der AppLayout Komponente zur Verfügung stehen.
Gibt es eine Möglichkeit, dies tatsächlich mit react-Router 4 zu erreichen?
Dank, scheint dies zu funktionieren, obwohl es eher kontraproduktiv scheint, besonders da dies möglich war, bevor er mit einem viel einfacherer Ansatz. – user3376486
Ja, in der Tat ist es kontraproduktiv. Die Handhabung von Routen mit dem react Router 3 war viel einfacher und unkomplizierter. –