我有两条动态路径:

Path=":对象/:类别";

PATH=":某个/:东西"

:Object可以是["女人"、"男人"、"子元素"之一; :类别可以是["衣服"、"鞋子"中的一个]

怎么说react 路由,如果第一条路径不适合:对象/:类别,那么想要try ":一些/:东西"作为第二次try ?

//Edit: 我将try 另一种方法:是否有方法以更简洁的方式编写此代码:

<Route
  path="womens/:category"
  element={
    <Suspense fallback={"Loading ..."}>
      <CatalogPage />
    </Suspense>
  }
/>
<Route
  path="mens/:category"
  element={
    <Suspense fallback={"Loading ..."}>
      <CatalogPage />
    </Suspense>
  }
/>
<Route
  path="girls/:category"
  element={
    <Suspense fallback={"Loading ..."}>
      <CatalogPage />
    </Suspense>
  }
/>
<Route
  path="boys/:category"
  element={
    <Suspense fallback={"Loading ..."}>
      <CatalogPage />
    </Suspense>
  }
/>

推荐答案

怎么说react 路由,如果第一条路径不适合 ":object/:category",然后想try 一下":some/:thing"作为第二个 试一试?

您不能有两个具有相同路径专用性的路由.换句话说,在路由匹配方面,path=":object/:category"的路由与path=":some/:thing"的路由是相同的;它们将具有相同的路由排名/分数.你需要以某种方式区分这两条路由.

有没有办法以更简洁的方式编写此代码:

<Route
  path="womens/:category"
  element={
    <Suspense fallback={"Loading ..."}>
      <CatalogPage />
    </Suspense>
  }
/>
<Route
  path="mens/:category"
  element={
    <Suspense fallback={"Loading ..."}>
      <CatalogPage />
    </Suspense>
  }
/>
<Route
  path="girls/:category"
  element={
    <Suspense fallback={"Loading ..."}>
      <CatalogPage />
    </Suspense>
  }
/>
<Route
  path="boys/:category"
  element={
    <Suspense fallback={"Loading ..."}>
      <CatalogPage />
    </Suspense>
  }
/>

您可以通过映射路由使这部分路由代码更接近100.

示例:

import {
  ...,
  generatePath
} from 'react-router-dom';

...

return (
  ...
  {["womens", "mens", "girls", "boys"].map(type => (
    <Route
      key={type}
      path={generatePath(":type/:category", { type })}
      element={
        <Suspense fallback={"Loading ..."}>
          <CatalogPage />
        </Suspense>
      }
    />
  ))}
  ...

Reactjs相关问答推荐

使用setInterval判断数据的时间,然后在过期后从对象中删除;遇到性能问题

为什么VScode中的React应用程序无法识别文件夹 struct ?

如何在关闭和打开此 Select 输入时应用旋转效果?

在每页上应用字体-NextJS

使用Ionic 7和React 18,如何访问历史对象以在页面之间导航?

在react上隐藏源映射

无法在下一个标头上使用 React hooks

.populate() 方法在 mongodb 中不起作用

单击按钮不会切换组件(当按钮和组件位于两个单独的文件中时)

如何在 TimePicker 中更改时钟 colored颜色 和确定按钮字体 colored颜色 - MUI React

React useEffect 依赖项

ReactJS on AWS Amplify与EC2上的Spring boot服务之间的混合内容错误

有没有办法在用户离开页面时防止输入模糊?

react-router v6 中的 BrowserRouter 和 createBrowserRouter 有什么区别?我可以在不使用数据 API 的情况下使用 createBrowserRouter 吗?

为嵌套路由配置一个不存在的 url 的重定向

如果 URL 已随功能组件更改,则取消刷新

组件焦点上的 MUI 更改栏 colored颜色

Axios 删除在带有授权令牌的react js 中不起作用

调用函数以获取数据并在数据到达时导航到链接

ClearInterval 在 React 中的 useRef 没有按预期工作