2017-06-14 417 views
0

我有一個文檔組件路由器,我想我的網址看起來像這樣:陣營多層次參數

url: myapp.com/docs 
url: myapp.com/docs/document-1 
url: myapp.com/docs/category-1/document-2 
url: myapp.com/docs/category-1/category-2/document-2 

我掙扎設置的路由。

我已經嘗試了一些事情,包括:

<Route path="docs"> 
    <IndexRoute component={Docs} /> 
    <Route path=":path" component={Docs} /> 
</Route> 

這非常適用於myapp.com/docs/document-1,但它不與myapp.com/docs/category-1/document-2很好地工作,這意味着this.props.params.path將在第一種情況下返回document-1但在迷糊第二。

我想獲得myapp.com/docs之後的路徑。例如,對於myapp.com/docs/category-1/category-2/document-2我希望能夠取件/category-1/category-2/document-2

有關如何完成這一任何想法?如果問題不夠清楚,請讓我知道。

注意:我無法控制網址上的圖層數量。

+0

你檢查出[產生反應路線匹配路由器文檔(HTTPS:/ /github.com/ReactTraining/react-router/blob/v3/docs/guides/RouteMatching.md)?你要麼需要嵌套路線,要麼像上面一樣使用多個字符串模式。 –

回答

0

這是對我有用。

<Route path="**/*" component={Docs} /> 

並捕捉到它:

this.props.params.splat 

如果你想整個路徑做:

this.props.params.splat.join('/')