./src/App.js 尝试导入错误:“Switch”未从“react-router-dom”导出

Posted

技术标签:

【中文标题】./src/App.js 尝试导入错误:“Switch”未从“react-router-dom”导出【英文标题】:./src/App.js Attempted import error: 'Switch' is not exported from 'react-router-dom' 【发布时间】:2022-01-12 21:44:24 【问题描述】:

我无法弄清楚为什么不起作用。我已经卸载了react-router-dom包并重新安装了它,但我总是遇到同样的错误。

我得到的错误:./src/App.js 尝试导入错误:“Switch”未从“react-router-dom”导出。

这是我的代码。 我希望有人可以帮我一把 提前致谢

import './App.css';
import  BrowserRouter as Router, Switch, Route  from "react-router-dom";
import NavBar from '../src/Components/UI/NavBar/NavBar';
import Footer from '../src/Components/UI/Footer/Footer';
import Home from './Components/Views/Home/Home';

function App() 
  return (
    <Router>
      <NavBar/>
      <Switch>
        <Route path="/">
          <Home/>
        </Route> 
      </Switch>
      <Footer/>
    </Router>
  );


export default App;

【问题讨论】:

【参考方案1】:

如果您不小心将 react-router-dom 更新到版本 6,它将不再导出 Switch 组件。它被一个Routes 组件替换,必须直接包装/渲染Route 组件。

    Switch 替换为Routes 组件。

    import  BrowserRouter as Router, Routes, Route  from "react-router-dom";
    ...
    
    function App() 
      return (
        <Router>
          <NavBar/>
          <Routes>
            <Route path="/" element=<Home/> />
          </Routes>
          <Footer/>
        </Router>
      );
    
    

    按照Upgrading from v5 将您的项目从 v5 迁移到您的应用程序中的 v6,因为有很多重大的组件 API 更改。

    恢复到react-router-dom v5。

    运行npm un -s react-router-dom 运行npm i -s react-router-dom@5.3.0

【讨论】:

以上是关于./src/App.js 尝试导入错误:“Switch”未从“react-router-dom”导出的主要内容,如果未能解决你的问题,请参考以下文章

在./src/App.js'store'中的反应错误未定义

无法编译 ./src/App.js 找不到模块:无法解析

./src/App.js 模块未找到:无法解析 xxx 中的“@material-ui/data-grid”

按顺序附加异步响应 swit 3

React:如何在 src 和公共文件夹之外加载图像

如何将对象数组文件访问到反应组件中?