Reactjs 如何使用cloneElement将道具传递到Route';s组件?

Reactjs 如何使用cloneElement将道具传递到Route';s组件?,reactjs,react-router,react-router-v4,react-router-dom,Reactjs,React Router,React Router V4,React Router Dom,说路线是 <App> <Route path='/login' component={Login}/> </App> 但是foo:bar不会出现在Login组件的道具中 如果我用替换,那么我会在那里得到foo:bar道具 我的问题是如何将道具传递给应用程序子级(路由),以便将这些道具传递给相应的组件,我不确定它是否适用于您的用例,但配备了: ( )} /> 我不确定它是否适用于您的用例,但是配备了: ( )} /> 不幸的是,这不起作用foo:'ba

说路线是

<App>
  <Route path='/login' component={Login}/>
</App>
但是
foo:bar
不会出现在
Login
组件的道具中

如果我用
替换
,那么我会在那里得到
foo:bar
道具


我的问题是如何将道具传递给应用程序子级(
路由
),以便将这些道具传递给相应的
组件
,我不确定它是否适用于您的用例,但
配备了:


(
)} />

我不确定它是否适用于您的用例,但是
配备了:


(
)} />

不幸的是,这不起作用
foo:'bar'
来自应用程序结果,类似于
我希望它反映在
组件=
中。幸好这不起作用
foo:'bar'
来自应用程序结果,类似于
我希望它反映在
组件=
中。谢谢,谢谢。我知道可以重新格式化我的子迭代,从
child
中删除
props.component
属性,并将其替换为
render
,但我正在寻找一种解决方案,这些props可以应用于组件而不必这样做。@David,我发现
React.Children
方法只在有限的情况下可行;只要你需要将道具传递到一个以上的层次(即从
App
Route
Login
),它就会变得混乱,通常会有更好的解决方案,特别是如果中间组件不是你的(即
Route
)。你可能想调查一下,尽管我猜这对你所需要的东西来说太过分了。否则,您可能可以为
Route
创建包装,并在其中使用
React.Children.map
传递道具(除了您提供的示例代码)。谢谢。我知道可以重新格式化我的子迭代,从
child
中删除
props.component
属性,并将其替换为
render
,但我正在寻找一种解决方案,这些props可以应用于组件而不必这样做。@David,我发现
React.Children
方法只在有限的情况下可行;只要你需要将道具传递到一个以上的层次(即从
App
Route
Login
),它就会变得混乱,通常会有更好的解决方案,特别是如果中间组件不是你的(即
Route
)。你可能想调查一下,尽管我猜这对你所需要的东西来说太过分了。否则,您可能可以为
Route
创建包装,并在其中使用
React.Children.map
传递道具(除了您提供的示例代码)。
React.Children.map(props.children, function (child) {
       return React.cloneElement(child, {
          foo: 'bar'
       })
});
<App>
  <Route 
    path='/login' 
    render={routerProps => (
      <Login 
        {...routerProps} 
        foo='bar' />
    )} />
</App>