2017-06-14 72 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('/')