I'm trying to understand the difference between using Router and Switch in React Router.
But I don't understand why using Switch in bellow example works:
import { BrowserRouter, Route, Switch } from 'react-router-dom';
ReactDOM.render(
<React.StrictMode>
<BrowserRouter>
<Switch>
<Route exact path="/" component={App} />
<Route path="/item" component={SocialMediaShare} />
</Switch>
</BrowserRouter>
</React.StrictMode>,
document.getElementById('root')
);
But using Router throws an error:
import { BrowserRouter, Route, Router } from 'react-router-dom';
ReactDOM.render(
<React.StrictMode>
<BrowserRouter>
<Router>
<Route exact path="/" component={App} />
<Route path="/item" component={SocialMediaShare} />
</Router>
</BrowserRouter>
</React.StrictMode>,
document.getElementById('root')

In addition to the answers, it should be noted that starting from react-router-dom v6, <Switch /> has been replaced by <Routes />.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With