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