具有多个分层参数的路由器

时间:2017-06-14 00:50:15

标签: javascript reactjs react-router

我有一个文档组件,我希望我的网址看起来像这样:

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

有关如何实现这一目标的任何想法?如果问题不够清楚,请告诉我。

注意:我无法控制网址上的图层数量。

1 个答案:

答案 0 :(得分:0)

这对我有用。

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

并抓住它:

this.props.params.splat 

如果你想要整条路径:

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