react-router完整路径参数

时间:2017-12-01 21:30:29

标签: reactjs react-router-v4

我正在尝试使用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 路径参数将一个/两个/三个

有谁知道是否可以这样做?

感谢。

1 个答案:

答案 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,参数pathone/two/three