-
Here's the context, let say I have several modules in my app (users, roles, permissions...), and each of these modules provide their own routes like below (just user module for simplicity). User module routes
Those modules may be provided as ES modules from other packages. The question is how do I declare them (from the package owner side) and how do I import them (from the consumer side) as routes in RRv6 ? It's stupid but I tried to wrap routes with Below is a non working example of what I am trying to do. // Public user routes
function UserRouter() {
return (
<Routes>
<Route
path="/sign-in"
element={<SignInPage />}
/>
<Route
path="/sign-out"
element={<SignOutPage />}
/>
</Routes>
);
}
// Admin user routes
function UserAdminRouter() {
return (
<Routes>
<Route
path="/admin/users"
element={<UserListPage />}
/>
<Route
path="/admin/users/add"
element={<AddUserPage />}
/>
<Route
path="/admin/users/:id/edit"
element={<EditUserPage />}
/>
</Routes>
);
}
// App routes
function App() {
return (
<BrowserRouter>
<Routes>
<Route
path="/"
element={<HomePage />}
/>
<UserRouter />
<UserAdminRouter />
<Route
path="*"
element={<NotFoundPage />}
/>
</Routes>
</BrowserRouter>
);
} To be clear I would like to import routes declared in other files into a I always found that RR was not enough flexible on this aspect, and it's even worst with the enforced relative route paths in v6, which does not allow to include a UserRouter (that would also contains routes of UserAdminRouter) in multiple places (/admin/* and /*). |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Use React fragments for pieces of your route config instead of a let UserRoutes = (
<>
<Route
path="/sign-in"
element={<SignInPage />}
/>
<Route
path="/sign-out"
element={<SignOutPage />}
/>
</>
);
let AdminUserRoutes = (
<Route
path="/admin/users"
element={<UserListPage />}
/>
<Route
path="/admin/users/add"
element={<AddUserPage />}
/>
<Route
path="/admin/users/:id/edit"
element={<EditUserPage />}
/>
);
let AppRoutes = (
<>
<Route
path="/"
element={<HomePage />}
/>
{UserRoutes}
{AdminUserRoutes}
<Route
path="*"
element={<NotFoundPage />}
/>
</>
);
We don't force your route paths to be relative. We support absolute nested paths. We just don't support them yet in a descendant |
Beta Was this translation helpful? Give feedback.
Use React fragments for pieces of your route config instead of a
<Routes>
element.