React-Router-Dom v6 中的重定向

n_d22

v6 中重定向的正确过程是什么?我以前在 v5 中使用以下代码,效果很好:

<Route path="/login">
  {user ? <Redirect to="/" /> : <LoginStandard />}
</Route>

但是,我想在这个版本中使用相同的逻辑。当我的用户登录后,我想重新定向。

<Route path="/login">
  <Route index element={<LoginStandard />} />
</Route>
德鲁里斯

使用Navigate组件进行重定向。仍然需要应用条件渲染逻辑,并在Route组件的elementprop 上渲染出组件。

例子:

<Route
  path="/login"
  element={user ? <Navigate to="/" replace /> : <LoginStandard />}
/>

将其抽象为自定义路由保护组件通常被认为是更好的做法,该组件有条件地呈现Outlet嵌套路由或Navigate组件。

例子:

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

const AnonymousRoute = ({ user }) => user
  ? <Navigate to="/" replace />
  : <Outlet />;

...

<Route element={<AnonymousRoute user={user} />}>
  <Route path="/login" element={<LoginStandard />} />
  ... other anonymous routes ...
</Route>
... other routes

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在react-router-dom中重定向?

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

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

React-router-dom 重定向问题

重定向在 react-router-dom 中存根

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

重定向在 react-router-dom 中什么都不做

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

react中的页面重定向问题,react-router-dom

如何在 React Router v6 中重定向?

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

react-router-dom v 6.0.0 中重定向的替代方法是什麼?

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

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

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

React Router Dom v6 中的重定向

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

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

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

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

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

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

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

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

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

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

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

React Router Dom V6 嵌套路由属性

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