// React render() return example
<Switch>
<Route path="/" exact render={this.renderPage}/>
<Route path="/search" render={this.renderPage}/>
<Route path="/profile" render={this.renderPage}/>
<Route render={this.renderPage}/>
</Switch>
// here's the simplified method that Route-s call if path matches
renderPage(props) {
// JS logic is here
return [
<ItemHeader key="header"/>,
<ItemWrapper key="wrapper">
{/* this is what the question is about: */}
{/* how do I pass this dynamic Component here or even hint about it? */}
<Component someProp={varBasedOnJSLogicAbove}/>
</Wrapper>
];
}
如何将任何数据传递给renderPage
方法?
我需要将我的组件作为变量(或任何正确的提示 - string etc )传递给renderPage
方法,因为我需要告诉它我想要它呈现的组件。
renderPage
方法?有JavaScript逻辑,我还需要将Component
与其他组件包装在一起。
component
使用Route
道具?<Route path="/profile" component={Profile}/>
因为我需要包装组件并将一些数据注入其中,就像在renderPage
方法中一样。
renderPage
逻辑和包装呢?您可以将所需的所有内容传递给props
等:<CustomRoute path="/profile" component={Profile} anyThing="ILikeToPass"/>
尝试过,不幸的是它打破Switch
(我真的需要它),Route
必须是直接的孩子。
renderProfile
。Component
之外,有20种方法,每种方法都有完全相同的代码吗?不,谢谢!
<Route path="/profile" render={this.renderPage(Component, 'foo')}/>
// or
<Route path="/profile" render={() => this.renderPage(Component, 'bar')}/>
不按需要工作。第一个选项似乎覆盖了React Router传递给我的方法的props
(我需要那些),如果你使用箭头函数 - 它只传递props
,而不是我的args。
pathname
并自己弄明白?使用没有Route
道具的单个path
并在我的方法中执行所有路径名解析和逻辑?如果不是 那么使用路由器和Route
- 这是一个很大的问题。我不想重建路由器。
答案 0 :(得分:1)
所以,这是一个答案:
为什么不尝试:
<Route path="/profile" render={(props) => this.renderPage(props, Component, 'bar')}/>