2016-07-26 1 views
0

Если у меня есть следующие в моем маршрутизаторе:React-Router: за исключением props.children, могу ли я передать дополнительные переменные родителям?

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

я получить либо App1 или App2 в MainLayout, как this.props.children. Но могу ли я получить некоторую другую настройку в MainLayout, передав, например, hasTitle=false или hasTitle=true в подпунктах вроде выше?

+0

, если вы хотите, чтобы получить реквизит из маршрута, вы можете использовать это, props.route.hasTitle –

ответ

0

Использование cloneElement передать дополнительные опоры вниз к ребенку, а не {this.props.children} в MainLayout записи

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

Следует отметить, перебирать детей с помощью 'React.Children.forEach' или' React.Children.map' перед клоном, если в 'this.props.children' содержится несколько содержащихся элементов. – Season