我有这样的路由器:
<Route path="/" component={App}>
<IndexRoute component={Dashboard} />
<Route path="info" component={Info}>
<Route path="c/:cid" component={CompanyDetail} />
<Route path="p/:pid" component={ProjectDetail} />
</Route>
</Route>
我的信息组件是由react-redux
连接的高阶组件。
作为react-router v1.0.0中的更改,如果达到this.props.children
,Info组件中的/info/c/123
应代表CompanyDetail组件。但是当我尝试到达/info
时,我得到了这个:
我似乎Info组件中this.props.children
的价值本身?如果我尝试访问/info/c/123
,也遇到此问题,Info组件包含Info组件本身,其中包含CompanyDetail组件。
这让我感到困惑,任何想法?
答案 0 :(得分:0)
我认为你应该将CompanyDetail和ProjectDetail路由定义为Info route的子路由。
例如:
<Route path="info" component={Info}>
<Route path="info/c/:cid" component={CompanyDetail} />
<Route path="info/p/:pid" component={ProjectDetail} />
</Route>
答案 1 :(得分:0)
React.cloneElement(this.props.children, {...this.props})
通过防止将this.props.children
复制给儿童来解决。