I’m struggling to navigate between different pages in react router I have my ReactDom.render() as follows:
ReactDOM.render((
<BrowserRouter>
<App/>
</BrowserRouter>),
document.getElementById('root'))
Here I have App.js with just my home and a second page (Park). If I place outside the tags the navbar is visible, but when inside the tags the navbar isn’t visible anymore.
function App() {
const classes = styles();
return (
<>
<Router>
<NavBar />
<Routes>
<Route path="/" element={<Home />} />
<Route path="/park_your_car" element={<Park />} />
</Routes>
</Router>
</>
);
}
export default App;
Then I placed my links inside my NavBar.js
function NavBar() {
const classes = styles()
return (
<div>
<Toolbar position = "sticky" color="rgba(255, 215, 0)" className={classes.bar}>
<img src={logo} className={classes.logo}/>
<Typography variant="h6" className={classes.menuItem}>
<Link to="/"><b>Home</b> </Link>
</Typography>
<Typography variant="h6" className={classes.menuItem}>
<Link to="/park_your_car"><b>Park Your Car</b></Link>
</Typography>
<Typography variant="h6" className={classes.menuItem}>
<Link className="menuItem" to="/find_your_car"><b>Find Your Car</b></Link>
</Typography>
<Typography variant="h6" className={classes.menuItem}>
<Link className="menuItem" to="/exit_from_lot"><b>Exit Lot</b></Link>
</Typography>
<CustomButton txt="Contact Us" />
</Toolbar>
</div>
)
}
Advertisement
Answer
You should remove <Router> tag and take out <Navbar> from the <Routes>
function App() {
const classes = styles();
return (
<>
<NavBar />
<Routes>
<Route path="/" element={<Home />} />
<Route path="/park_your_car" element={<Park />} />
</Routes>
</>
);
}
Why you should remove <Router> from App?
Because here, in index.js, you are already using BrowserRouter
import { BrowserRouter } from 'react-router-dom';
ReactDOM.render((
<BrowserRouter>
<App/>
</BrowserRouter>),
document.getElementById('root'))