我正在尝试使用React Router做一些事情,但我似乎找不到办法。我使用的是React Router 4.2.0。
我有一些看起来像这样的路线:
<ConnectedRouter history={history}>
<div>
<Route exact path="/" component={Projects}/>
<Route path="/editor/:path" component={Editor}/>
</div>
</ConnectedRouter>
当我在 / editor 页面上时,我想获得路径参数,其中包含所有文本,即使它有&#39; /&#39;在它。
因此,如果我要访问页面 / editor / one / two 路径参数将一个/两个。 如果我要去页面 / editor / one / two / 3 路径参数将一个/两个/三个。
有谁知道是否可以这样做?
感谢。
答案 0 :(得分:0)
React路由器使用path-to-regexp进行路径匹配。
检查路径到regexp文档,您会看到该库提供了匹配one-to-many parameters with a +
prefix的选项:
var re = pathToRegexp('/:foo+')
// keys = [{ name: 'foo', delimiter: '/', optional: false, repeat: true }]
re.exec('/bar/baz')
//=> ['/bar/baz', 'bar/baz']
换句话说, /editor/:path+
匹配/editor/one/two/three
,参数path
将one/two/three
。