![](/img/trans.png)
[英]Nested Routes in React not rendering correctly with react-router v4
[英]React-router v4 nested routes & programmatic navigation
因此,我以这种方式设置了几条路线:
索引.js
<Route exact path={pathDefault} component={Home}>
<Route path={path1} component={component1}/>
<Route path={path2} component={component2}/>
</Route>
组件1.js
<Route exact path={`${props.match.url}`} component={Summary}/>
<Route path={`${props.match.url}`/someOtherPath1} component={SubComponent1}/>
<Route path={`${props.match.url}`/someOtherPath2} component={SubComponent2}/>
component2.js 的设置类似。
这里的想法是我有多个具有默认页面的顶级路由。 但是,则可以在子路由之间进行切换。 这工作正常,直到,当在像component1/someOtherPath2
这样的子级路由之一时,我可以在someOtherPath1
和someOtherPath2
之间切换,但是如果我然后尝试使用history.push(path2)
更改顶级路由之一,而不是回到顶级组件(即 path1 的默认组件),它最终会推送复合的,因此不正确的路由,例如component1/component2
。
那么,当您在较低级别的组件中以编程方式(最好使用history.push
或类似的)时,您将如何更改较高级别的路由?
history.push
将路径作为参数而不是组件:
history.push(路径,[状态])
例如:
history.push('/home');
或者
history.push('/home', { some: 'state' });
你可以在文档中阅读更多关于它的信息。
编辑:
如果您想更改根路径,也不要忘记前导/
。 例如:
history.push('/path1/path2');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.