我正在努力整理我的App.jsx
个文件,尽管我注意到考虑到路由的数量,它变得越来越大.
如何才能缩短文件的长度而不是添加文件中的所有内容呢?
下面是一个例子:
function App() {
const isAuthenticated = userTokenStore((state) => state.isLoggedIn);
return (
<Router>
<Routes>
<Route path="/" element={<Landing />} />
<Route path="/support" element={<Support />} />
<Route path="/apply" element={<Apply />} />
<Route path="/about" element={<About />} />
<Route path="/login" element={<Login />} />
<Route
path="/admin/dashboard"
element={
<PrivateRoute isAuthenticated={isAuthenticated}>
<AdminLayout>
<Dashboard />
</AdminLayout>
</PrivateRoute>
}
/>
<Route
path="/admin/tickets"
element={
<PrivateRoute isAuthenticated={isAuthenticated}>
<AdminLayout>
<Tickets />
</AdminLayout>
</PrivateRoute>
}
/>
<Route
path="/admin/orders"
element={
<PrivateRoute isAuthenticated={isAuthenticated}>
<AdminLayout>
<Orders />
</AdminLayout>
</PrivateRoute>
}
/>
</Routes>
</Router>
);
}
export default App;
我想要做的是创建一个PublicRoutes.jsx
文件和一个AdminRoutes.jsx
文件,并在主文件上使用这些文件,因此它将如下所示:
function App() {
const isAuthenticated = userTokenStore((state) => state.isLoggedIn);
return (
<Router>
<Routes>
<PublicRoutes />
<AdminRoutes />
</Routes>
</Router>
);
}
export default App;
有可能吗?我试过了,但react-router-dom
严格地告诉我,我不能在<Router>
中添加除<Route>
个组件以外的任何组件.