【问题标题】:React router v4 match path if not `/user`如果不是`/user`,则反应路由器v4匹配路径
【发布时间】:2019-05-23 06:19:22
【问题描述】:

我在 react router v4 有一个案例:

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

但是,如果路由是,我不想渲染 TimeComponent

/user/userId123

如上所示,路径匹配 user:timeuserId123:zone

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

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

寻求帮助

【问题讨论】:

    标签: javascript regex reactjs react-router-v4


    【解决方案1】:

    你可以像这样使用 react router dom 中的 switch:

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

    这样它一次只会匹配一个路由,并且你的 2 个参数路由在最后。因此,使用这种方法,您可以在时间组件路由之前捕获 /user 路由。

    请试试这个。

    【讨论】:

      猜你喜欢
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 2020-05-22
      • 2017-10-27
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多