我如何将其升级到 react-router-dom v6

穆贾希德·耶尔德勒姆

我有以下 v5 代码:

</Switch>
  ...
  <Route path="/home">
    <Header />
    <Home />
  </Route>
</Switch>

v5 代码

您好,如何将其升级到 v6 ?

我试过这段代码,但它不起作用。

<Route exact path="/home" element={((<Home />), (<Header />))}>
德鲁里斯

问题

element={((<Home />), (<Header />))}>实际上是一个Comma Operator expression<Header />在您的情况下,它在评估时返回最后一个操作数的值。

解决方案

转换react-router-dom@5代码

</Switch>
  ...
  <Route path="/home">
    <Header />
    <Home />
  </Route>
</Switch>

react-router-dom@6API/syntax,用Switch组件替换Routes组件并将路由内容移动到Route组件的elementprop 上:

<Routes>
  ...
  <Route
    path="/home"
    element={(
      <>
        <Header />
        <Home />
      </>
    )}
  />
</Routes>

如果使用多个路由渲染标题组件,通常会创建渲染通用 UI 的布局路由Outlet和用于渲染其元素的嵌套路由。

例子:

import { Outlet } from 'react-router-dom';

const HeaderLayout = () => (
  <>
    <Header />
    <Outlet />
  </>
);

...

<Routes>
  ... routes w/o Header
  <Route element={<HeaderLayout />}>
    <Route path="/home" element={<Home />} />
    ... other routes to render with Header
  </Route>
</Routes>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何導航到 React Router Dom V6 中的嵌套路由

如何在课堂上从 react-router-dom v6 获取参数值

如何在 react-router-dom v6 的活动 NavLink 中显示不同的图标?

React Router Dom v6 中的重定向

React Router Dom V6 嵌套路由属性

React-Router-Dom v6 中的重定向

使用 react-router-dom (v6) 成功登录后,Reactjs 重定向到仪表板页面

在 react-router-dom v6 中有多個路徑到同一組件

如何在react-router-dom v6中返回上一条路由

如何使用 react-router-dom v6 渲染具有不同佈局/元素的組件

React/Typescript 条件路由 - 从 React Router Dom v5 更新到 v6

如何在 React Router v6 中重定向?

React-router-dom (v6) 和 Framer Motion (v4)

React Router Dom v6 - 函數作為 React 子節點無效

在 React js react-router-dom V6 中實現嵌套路由

MUI Drawer 不使用 React-router-dom v6 渲染

在 react-router-dom (v6) 中使用 Navlink 傳遞道具

在 react-router-dom v6 中的 history.replace

React-router-dom v6,URL更改但组件未呈现

嵌套路由 react-router-dom v6 不起作用

react-router-dom V6 中的嵌套路由

使用 <Navigate /> 傳遞 props (react-router-dom v6)

React Router Dom V6 中的 <Link> 标记未按预期工作

使用 react-router-dom v6 导航不起作用

react-router-dom v6 在当前页面上渲染新页面

React Router Dom v6 检测用户离开页面并做一些事情

如何在不指定键的情况下使用 React-Router-DOM v6 `useSearchParams` 获取所有查询参数?

React Router v6 onclick

React Router V6 activeStyle 问题