使用react-router-dom使用匹配的参数重定向不起作用

时间:2018-09-02 09:02:54

标签: reactjs react-router react-router-v4 react-router-dom

我正在使用react-router-dom:4.3.0-rc.3
路线组件

<Switch>
  <Redirect from='/p/:userId' to='/p/:userId/main' />
  <Route path="/p/:userId/main" component={Main} />
</Switch>

当我获得网址/p/123456时,它会重定向到/p/:userId/main并丢失了userId。
我对此感到困惑。在官方网站上,我找不到答案。

1 个答案:

答案 0 :(得分:1)

<Redirect>不执行任何模式编译。您必须为其提供要重定向到的实际URI。

我采用的方法是使用<Route>而不是<Redirect>进行匹配,然后使用解析的参数来构建重定向URI。

<Route path="/p/:userId" render={({ match }) => (
  <Redirect to={`/p/${match.params.userId}/main`} />
)} />