【发布时间】:2022-02-17 00:42:53
【问题描述】:
我是 React 的初学者。 我正在尝试设置路由器并渲染以更改页面,但它给了我无法理解的错误。
我已经安装到终端npm install react-router-dom
在我的index.js 中,我导入了BrowserRouter 并嵌入了我的APP
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import {BrowserRouter} from "react-router-dom"
ReactDOM.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>,
document.getElementById('root')
);
reportWebVitals();
在我的app.js 中,我有来自react-router-dom 的导入路由切换。
import Home from './page/home';
import Authentication from "./page/authentication";
import Header from './componenti/header';
import './App.css';
import DashboardComponent from './page/dashboardComponent';
import {Route, Switch} from "react-router-dom"
function App(props) {
return (
<div>
<Header/>
<Switch>
<Route exact path="/" render={(props)=> <Home/>}/>
<Route exact path="authentication" render={(props)=> <Authentication/>}/>
<Route exact path="/dashboard-component" render={(props)=> <DashboardComponent/>}/>
</Switch>
</div>
);
}
export default App;
重定向非常相似,在我的身份验证页面中,我从react-router-dom 导入了重定向,但它不正确。
import styles from '../style/authentication.module.css';
import {useState} from "react";
import {Redirect} from "react-router-dom"
const Authentication = () => {
--- other code ---
let postLoginRedirect = null;
if (isLogged) {
return postLoginRedirect = <Redirect to="/dashboardComponent"/>
}
return(
<div>
</div>
)
}
export default Authentication
在我看来一切都是正确的,我阅读了很多关于这个主题的内容,我从我用 react 开发的 web 应用程序中复制了解决方案,但它不起作用,我不明白。
这是错误信息:
./src/App.js 18:35-41 中的错误
在中找不到导出“Switch”(导入为“Switch”) 'react-router-dom'(可能的出口:BrowserRouter、HashRouter、Link、 MemoryRouter,NavLink,导航,插座,路线,路由器,路线, UNSAFE_LocationContext,UNSAFE_NavigationContext,UNSAFE_RouteContext, createRoutesFromChildren、createSearchParams、generatePath、matchPath、 matchRoutes、renderMatches、resolvePath、unstable_HistoryRouter、 useHref,useInRouterContext,useLinkClickHandler,useLocation, useMatch,useNavigate,useNavigationType,useOutlet,useOutletContext, useParams, useResolvedPath, useRoutes, useSearchParams)
./src/page/authentication.js 48:52-60 中的错误
在中找不到导出“重定向”(导入为“重定向”) 'react-router-dom'(可能的出口:BrowserRouter、HashRouter、Link、 MemoryRouter,NavLink,导航,插座,路线,路由器,路线, UNSAFE_LocationContext,UNSAFE_NavigationContext,UNSAFE_RouteContext, createRoutesFromChildren、createSearchParams、generatePath、matchPath、 matchRoutes、renderMatches、resolvePath、unstable_HistoryRouter、 useHref,useInRouterContext,useLinkClickHandler,useLocation, useMatch,useNavigate,useNavigationType,useOutlet,useOutletContext, useParams, useResolvedPath, useRoutes, useSearchParams)
【问题讨论】:
-
switch 来自名为
react-routerimport { Route, Switch } from "react-router";的包 -
您使用的是哪个版本的路由器 dom?
标签: reactjs react-router react-router-dom