【问题标题】:Multiple optional params matching多个可选参数匹配
【发布时间】:2021-03-29 08:14:34
【问题描述】:

大家好,我遇到了 React 路由器的问题。实际上我使用的是 react-router 5.2.0

我想要实现的是具有不同参数的相同基本路由,并在与路由匹配的组件中检索正确的参数。

例如,我有两条这样的路线:

<Route
        path={["/search", "/search/:city?", "/search/:province?"]}
        exact
        render={(props: any) => <Search {...props} />}
      />

在搜索组件上,我想要获取参数以及参数的类型,城市或省。但是反应路由器似乎只捕获第一条路线“/search/:city?”即使我在省线。 我认为 generatePath (react router doc) 可以节省我的时间,但它并没有像我预期的那样工作。或者更好的不是真正的 generatePath 本身,而是更多的路由匹配模式。 只是为了更好地澄清我做了一个代码框here,你可以看到如果你点击一个带有省的链接,反应路由器将正确捕获参数,但作为“类型”城市而不是省。

提前感谢大家。

【问题讨论】:

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


    【解决方案1】:

    您还可以像/search?type=city 一样配置您的网址,并在 Search 组件使用查询参数挂载时处理您想要实现的过程。

    【讨论】:

    • 我也是这么想的(我也为这种 url 实施了解决方案),但我想要一个更“SEO 友好的 url”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 2017-09-02
    相关资源
    最近更新 更多