2016-07-26 8 views
0

Wenn ich folgend in meinem Router habe:React-Router: außer props.children, kann ich zusätzliche Variablen an Eltern weitergeben?

<Route path="/" component={MainLayout}> 
    <Route path="path/one" component={App1} hasTitle={false} /> 
    <Route path="path/two" component={App2} hasTitle={true} /> 
</Route> 

werde ich entweder App1 oder App2 in MainLayout als this.props.children bekommen. Aber kann ich eine andere Anpassung in MainLayout bekommen, indem ich zum Beispiel hasTitle=false oder hasTitle=true in Subrouten wie dem oben genannten passiere?

+0

, wenn Sie von der Route bekommen Requisiten wollen, können Sie diese verwenden können, props.route.hasTitle –

Antwort

0

Verwenden cloneElement zusätzliche Requisiten zu überliefern, um das Kind, statt {this.props.children} im MainLayout Schreib

{React.cloneElement(this.props.children, {hasTitle:true})} 
+0

Stellt fest um mit "React.Children.forEach" oder "React.Children.map" vor dem Klon über die Kinder zu iterieren, wenn in "this.props.children" mehrere Elemente enthalten sind. – Season