如果不是`/ user`,则反应路由器v4匹配路径

时间:2018-12-23 21:57:12

标签: javascript regex reactjs react-router-v4

我在React Router v4中有一个案例:

<Route path="/:time?/:zone?" component={TimeComponent} />

但是,如果路由为:

,我不想渲染该TimeComponent
/user/userId123

如上所示,路径将user匹配为:time,将userId123匹配为:zone

我的目标:如果路径包含/user,我不希望路径匹配。

我知道,我可以使用regex,但是如果包含/user,如何指定我不想匹配路径?

寻求帮助

1 个答案:

答案 0 :(得分:2)

您可以像这样从反应路由器dom使用交换机:

<Switch>
  <Route path="/user/:userId?" component={UserComponent} />
  <Route path="/:time?/:zone?" component={TimeComponent} />
</Switch>

与此同时,它一次将仅匹配一条路线,而您的2个参数路线位于末尾。因此,使用这种方法,您可以在时间分量路由之前捕获/ user路由。

请尝试这个。