2016-05-31 156 views
2

我有這個路由架構獲取路線不帶參數與之反應路由器

<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> 

路線「/管理/職位/ 2」將呈現一個列表的第二頁,在底部有一個導航菜單Link元素到前面的或後面的頁面(3,4,5等或/路徑路徑是第一頁)

要創建此菜單,我必須知道內部路線「/ admin/posts /:頁面「的父路線的基路徑,但在道具中沒有」indexroute「對象

如何ca ñ我解決這個問題?我可以在代碼中設置明顯的路徑,但我想重複使用這個組件,所以這不是一個可行的解決方案

編輯:我可以使用正則表達式來拼接來自location.pathname的字符串,但我不太喜歡這個解決方案

回答

0

鑑於<Route path="/admin/posts/:page" component={PostsAdminList} />PostsAdminList組件將獲得一個道具叫params,您可以通過this.props.params.page訪問page