Javascript 在函数中创建react路由器路由
是否可以通过函数创建Javascript 在函数中创建react路由器路由,javascript,redux,react-router,Javascript,Redux,React Router,是否可以通过函数创建元素?我想显示不同的路由/页面,但应用程序不知道它们有多少。页面处于存储在页面对象数组中的状态。每个页面对象都有一个id、title、path和body元素(到目前为止)。我认为我的路由器应该是这样的: <Route path={page.path} component={() => <CommonPage someProp={page.someProp}/>}/> render() { return(<div&g
元素?我想显示不同的路由/页面,但应用程序不知道它们有多少。页面处于存储在页面对象数组中的状态。每个页面对象都有一个id、title、path和body元素(到目前为止)。我认为我的路由器应该是这样的:
<Route path={page.path} component={() => <CommonPage someProp={page.someProp}/>}/>
render() {
return(<div>This is {this.props.params.pageNumber}</div>);
}
渲染((
),document.body)
如果要将属性传递给子管线组件,可以执行以下操作:
<Route path={page.path} component={() => <CommonPage someProp={page.someProp}/>}/>
render() {
return(<div>This is {this.props.params.pageNumber}</div>);
}
}/>
如果要动态创建React路由,可以使用带有参数的路由,如下所示。这是您的路由器:
render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="/page:pageNumber" pages={this.state.pages} component={CommonPage} />
<Route path="*" component={NoMatch}/>
</Route>
</Router>
), document.body)
渲染((
),document.body)
然后在CommonPage组件中有如下内容:
<Route path={page.path} component={() => <CommonPage someProp={page.someProp}/>}/>
render() {
return(<div>This is {this.props.params.pageNumber}</div>);
}
render(){
返回(这是{This.props.params.pageNumber});
}
这将使您能够导航到任何/pageX路径。然后,在CommonPage组件中,您可以比较pageNumber参数和pages属性(可通过
this.props.route.pages
)以查看当前页码是否有效谢谢您的回答@Jayce444