如上所述,我如何一起使用它们?
像这样:
<Router history={history}>
<Route path="/" component={Root}>
<Route path='home' component={HomeContainer}></Route>
<Route path='about' component={AboutContainer}></Route>
<IndexRoute component={HomeContainer}/>
</Route>
</Router>
如果我需要提供&#39; /&#39;的IndexRoute怎么办?重定向到&#39; / home&#39;?
我在react-router 1.0.0-rc1的文件中找不到任何线索。
感谢。
[编辑]
只是详细说明:
在上述配置中,当&#39; /&#39;访问,页面将使用HomeContainer呈现;显示的内容与&#39; / home&#39;完全相同。被访问。
区别在于浏览器地址栏中的URL:在前一种情况下,URL是&#34; /&#34;在后一种情况下,URL是&#34; / home&#34;
我希望网址相同。所以我想要&#34; /&#34; (IndexRoute)直接重定向到&#34; / home&#34;。
希望这能澄清我的需要。
PS: 我可以使用仅执行重定向的Dummy组件来实现此行为:
<Router history={history}>
<Route path="/" component={Root}>
<Route path='home' component={HomeContainer}></Route>
<Route path='about' component={AboutContainer}></Route>
<IndexRoute component={DummyComponent}/> // which only does redirect
</Route>
</Router>
并在DummyComponent中:
componentDidMount() {
this.history.pushState(null, `/home`, null);
},
但似乎有点变通。
答案 0 :(得分:0)
对我来说,最好的解决方案是使用onEnter
功能。 (不确定这在1.x上有多好,因为我在2.0上使用它。)
<IndexRoute onEnter={(targetState, replace) => {replace('/home')}} />