如何使用react-router从嵌套路由的根目录重定向?

时间:2016-08-07 17:18:11

标签: reactjs react-router

我没有在网上找到任何答案,基本上我希望应用程序自动从我的路径根目录(/)重定向到'帖子'。因此www.app.com/user/1变为www.app.com/user/1/posts

我尝试使用Redirect,但它实际上什么也没做。

<Router history={browserHistory}>
    <Route path="/" component={App}>
        <IndexRoute component={HomePage}></IndexRoute>
        <Route path="user/:id" component={UserPage}>
            <Route path="tracks" component={UserPosts}></Route>
            <Redirect from="/" to="posts"/>
        </Route>
  </Route>
</Router>

尝试将Redirect组件放在上面,但仍然无法正常工作。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

我们在项目中使用的解决方案基于IndexRoute

<IndexRoute onEnter={redirectToMainPage} />

redirectToMainPage定义为:

const redirectToMainPage = (nextState, replace, callback) => {    
    replace(null, '/firstPage');

    if (callback) {
        callback();
    }
};

这将允许动态选择重定向。

此外,您可以使用IndexRedirect

<IndexRedirect to="/firstPage" />

我认为如果你从<Redirect>中的/开始,from采用绝对路径,而且一般来说,对于空路径来说,它不太可靠。