Attempted import error: 'Switch' is not exported from 'react-router-dom'
I don't know why I am getting this error and I can't find an answer for it anywhere. I have uninstalled the react-router-dom
package and reinstalled it, but it continues to tell me that the switch module is not exported from react-router-dom. Here's my code.
Error I'm getting: Attempted import error: 'Switch' is not exported from 'react-router-dom'.
import React from 'react';
import './App.css';
import NavBar from './components/navbar.js';
import Footer from './components/footer.js';
import Home from './components/pages/homepage/home.js';
import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';
function App() {
return (
<Router>
<div className="app-container">
<NavBar />
<Switch>
<Route path="/home" component={Home} />
</Switch>
<Footer />
</div>
</Router>
);
}
export default App;
`
In react-router-dom v6, "Switch" is replaced by routes "Routes". You need to update the import from
import { Switch, Route } from "react-router-dom";
to
import { Routes ,Route } from 'react-router-dom';
You also need to update the Route declaration from
<Route path="/" component={Home} />
to
<Route path='/welcome' element={<Home/>} />
In react-router-dom, you also not need to use exact in Route declaration.
For more information, you can visit offical docs: upgrade to react-router-dom v6
If you are using react-router-dom
v6 it looks like Switch
has been replaced with Routes
I also faced the same problem, and I search towards the internet so much but I didn't get any answer according to my question.
So I uninstall the version 6 of react-router-dom
npm uninstall react-router-dom
And installed version 5.2.0 of react-router-dom
npm install [email protected]