I have in my index the following routes:
<BrowserRouter>
<Routes>
<Route path="/" element={<App />} />
<Route path="admin" element={<AdminDashboard /> } />
</Routes>
</BrowserRouter>
I can access / and admin, and the components render correctly.
Inside AdminDashboard, I have two other routes:
<Routes>
<Route path="/" element={<AdminCards />} />
<Route path="news-sources" element={<NewsSourcesAdmin /> } />
</Routes>
If I access http://localhost/ and http://localhost/admin, I get things to render correctly.
However, if I attempt to go to http://localhost/admin/news-sources, then the NewsSourcesAdmin component does not render. I get an empty page instead.
Shouldn't the AdminDashboard component render given I'm under the admin route, and then the NewsSourcesAdmin component render inside of it given I am under the /admin/news-sources route?
I am on React 17, React Router v6.
What am I missing?
CodePudding user response:
v6 routes are exact by default.
Use trailing * to match everything:
<Route path="admin/*" element={<AdminDashboard /> } />
