【问题标题】:How to use matchPatch with dynamic links on React Router v6如何在 React Router v6 上使用 matchPatch 和动态链接
【发布时间】:2021-12-27 20:19:21
【问题描述】:

我要匹配的路径是/threats/live/:id

我们有一个组件,我们通常在其中渲染我们的 breadcrumbs,这就是使用 react router v5 构建它们的方式:

const breadcrumbOptions = routes
  .filter((route) => matchPath(pathname, { path: route.link, exact: false }))
  .map((route) => ({
    ...route,
    label: route.breadCrumbtitle,
    onclick: undefined,
}))

对于v6,这似乎不起作用,因为它在url 中查找:id,而是找到实际的id

我已经尝试了以下方法,但它仍然不适合我

const breadcrumbOptions = routes
  .filter((route) =>
    matchPath(
      { path: pathname, caseSensitive: false, end: false },
      route.link
    )
  )
  .map((route) => ({
    ...route,
    label: route.breadcrumbTitle,
    onclick: undefined,
}))

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:

    我认为在 v6 中 matchPath 的函数参数被颠倒了。

    你可以试试吗

    matchPath(route.link, pathname)
    

    改为?

    【讨论】:

    • 这似乎有效?除此之外,我还可以通过matchPath({ path: route.link, end: false }, pathname)进行浅层比较
    猜你喜欢
    • 2022-08-14
    • 2022-08-24
    • 2022-01-21
    • 2021-12-28
    • 2022-01-17
    • 1970-01-01
    • 2020-07-20
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多