React-Router-DOM的新版本(v6.0.0)不再支持“Redirect”。它的替代方案是什么?
React-Router-DOM的新版本(v6.0.0)不再支持“Redirect”。它的替代方案是什么?
如果您没有对应用程序进行服务器渲染,您仍然可以在客户端的初始渲染时执行重定向操作,如下所示:
import { Routes, Route, Navigate } from "react-router-dom";
function App() {
return (
<Routes>
<Route path="/home" element={<Home />} />
<Route path="/" element={<Navigate replace to="/home" />} />
</Routes>
);
}
/
时,他们将自动重定向到 /home
,与以前相同。React.useEffect()
中。react-router-dom
v6 中,重定向是通过使用带有 replace
属性的 <Navigate>
组件来完成的。
步骤1:
import { Navigate } from 'react-router-dom';
步骤2:
<Routes>
<Route path='/' element={<Navigate replace to='/search' />} />
</Routes>
在v6中,react-router-dom团队删除了重定向API,这是他们对此事的说法:https://github.com/remix-run/react-router/blob/main/docs/upgrading/reach.md#redirect-redirectto-isredirect
v6.2.*
版本中,只需添加一个路径为 *
的路由即可。<Routes>
<Route path="/" element={<App />}>
<Route path="expenses" element={<Expenses />} />
<Route
path="*"
element={
<main style={{ padding: "1rem" }}>
<p>There's nothing here!</p>
</main>
}
/>
</Route>
</Routes>