在终端中运行npm run start时,我会收到以下错误。
尝试导入错误:“重定向”不是从“react router”导出的。
我重新安装了node_modules,react-router-dom,react-router。也重新启动终端和我的电脑,但问题仍然存在。
我的代码:
import React from 'react';
import { Switch, Redirect } from 'react-router-dom';
import { RouteWithLayout } from './components';
import { Minimal as MinimalLayout } from './layouts';
import {
Login as LoginView,
Dashboard as DashboardView,
NotFound as NotFoundView
} from './views';
const Routes = () => {
return (
<Switch>
<Redirect
exact
from="/"
to="/dashboard"
/>
<RouteWithLayout
component={routeProps => <LoginView {...routeProps} data={data} />}
exact
layout={MinimalLayout}
path="/login"
/>
<Redirect to="/not-found" />
</Switch>
);
};
export default Routes;以下是我的package.json导入:
"react-router": "^6.0.0-beta.0",
"react-router-dom": "^6.0.0-beta.0",发布于 2021-10-01 15:02:22
对于react-router-dom v6,只需将Redirect替换为Navigate
import { Navigate } from 'react-router-dom';
.
.
.
{ component: () => <Navigate to="/404" /> }发布于 2021-12-29 05:34:45
重定向已从v6中删除。可以将重定向替换为导航。
import {
BrowserRouter as Router,
Routes,
Route,
Navigate,
} from 'react-router-dom';
import Home from '../home/Home';
export default function App() {
return (
<Router>
<Routes>
<Route path="/home" element={<Home />} />
<Route path="/" element={<Navigate replace to="/home" />} />
</Routes>
</Router>
);
}发布于 2020-09-01 15:50:49
Redirect组件已从react-router版本6中删除。
来自响应路由器文档:
不再支持来自v5的v5元素作为路由配置的一部分(在这是由于即将发生的React更改,使得在初始呈现期间更改路由器的状态是不安全的。如果需要立即重定向,可以在服务器上(可能是最好的解决方案)或b)在路由组件中呈现
<Navigate>元素。但是,要认识到导航将发生在useEffect中。
如果您想使用Redirect组件,则必须使用react路由器版本5。
或者,您可以使用来自react路由器v6的导航组件。<Navigate>元素在呈现时更改当前位置。
import { Navigate } from "react-router-dom";
return (
<Navigate to="/dashboard" replace={true} />
)注意:Navigate是围绕useNavigate钩子的组件包装器。您可以使用此钩子以编程方式更改路由。
https://stackoverflow.com/questions/63690695
复制相似问题