使用React Router获取没有参数的路由

时间:2016-05-31 13:15:33

标签: reactjs react-router

我有这个路由架构

<Router history={browserHistory}>
<Route path="/admin" component={AdminApp} onEnter={AdminApp.authCheck} >
    <Route path="/admin/new" component={NewPostAdmin} />
    <Route path="/admin/posts" component={PostsAdmin}>
        <IndexRoute component={PostsAdminList}/>
        <Route path="/admin/posts/:page" component={PostsAdminList} />
        <Route path="/admin/posts/edit/:newsId" component={EditPostAdmin} />
    </Route>
</Route>
<Route component={MainApp}>
    <Route path="/" component={HomeApp} / >
    <Route path="/:page" component={HomeApp} / >
    <Route path="/notizie/:newsId" component={SinglePost} / >
    <Route path="/signup" component={Signup} / >
</Route>
</Router>

路线“/ admin / posts / 2”将呈现列表的第二页,底部有一个导航菜单,其中包含前一页或后续页面的链接元素(3,4,5等或/作为第一页的路径路径)

要创建此菜单,我必须知道路由“/ admin / posts /:page”内部父路由的路径,但在props中没有“indexroute”对象

我该如何解决这个问题?我可以在代码中设置路径,但我想重用这个组件,所以这不是一个可行的解决方案

编辑:我可以使用正则表达式从location.pathname拼接字符串,但我真的不喜欢这个解决方案

1 个答案:

答案 0 :(得分:0)

鉴于<Route path="/admin/posts/:page" component={PostsAdminList} />PostsAdminList组件将收到名为params的道具,您可以page访问this.props.params.page