【问题标题】:How to redirect in React Router v6?如何在 React Router v6 中重定向?
【发布时间】:2021-12-20 10:28:03
【问题描述】:

我正在尝试升级到 React Router v6 (react-router-dom 6.0.1)。

这是我更新的代码:

import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';

<BrowserRouter>
  <Routes>
    <Route path="/" element={<Home />} />
    <Route path="/lab" element={<Lab />} />
    <Route render={() => <Navigate to="/" />} />
  </Routes>
</BrowserRouter>

最后一个Route 将其余路径重定向到/

但是,我遇到了一个错误

TS2322:类型 '{ 渲染:() => 元素; }' 不可分配给类型 'IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)'。类型“IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)”上不存在属性“render”。

但是,基于the doc,它确实有render 对应Route。如何正确使用?

【问题讨论】:

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


【解决方案1】:

我认为您应该使用不匹配路由方法。

在文档中检查这一点。

https://reactrouter.com/docs/en/v6/getting-started/tutorial#adding-a-no-match-route

import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';

<BrowserRouter>
  <Routes>
    <Route path="/" element={<Home />} />
    <Route path="/lab" element={<Lab />} />
    <Route
        path="*"
        element={<Navigate to="/" />}
    />
  </Routes>
</BrowserRouter>

【讨论】:

  • 非常感谢兄弟。你的回答救了我。整整一周我一直在尝试在 RRD5 中找到 render prop 的确切语法替换,最后经过几天的研究,我找到了你的答案。非常感谢
猜你喜欢
  • 2022-06-24
  • 2023-03-22
  • 2022-08-08
  • 2022-12-09
  • 2021-12-25
  • 2021-04-05
  • 2022-06-11
  • 1970-01-01
  • 2021-12-30
相关资源
最近更新 更多