我有一个受保护的布线,它为使用该布局组件的其他组件 Package 了我的布局布线。
我有一个问题与受保护的路线不按预期工作。如果一个用户为空,当我尝试访问localhost:3000/create时,它应该呈现我的着陆页,但我得到的是一个空白屏幕。
我意识到,如果我只有一个包含一个元素 prop 的路由,它就能正常工作。我做错了什么?
我的路由
<Router>
<Routes>
<Route path='/' element={<LandingPage />} />
<Route path='*' element={<NotFound />} />
<Route element={<ProtectedRoutes />}>
<Route element={<ResponsiveDrawer />}>
<Route path='/dashboard' element={<Dashboard />} />
<Route path='/create' element={<Create />} />
<Route path='/edit/:id' element={<Edit />} />
</Route>
</Route>
</Routes>
</Router>
我的保护路由
const ProtectedRoutes = () => {
const { user } = useContext(UserContext);
// console.log(user);
return user !== null ? <Outlet /> : <LandingPage />;
};
1条答案
按热度按时间brjng4g31#
ProtectedRoutes
正在渲染一个Outlet
组件,以便将嵌套的Route
组件渲染到其中。ResponsiveDrawer
还需要为它 Package 的任何嵌套Route
组件呈现Outlet
。呈现
ResponsiveDrawer
的路由呈现到ProtectedRoutes
组件的Outlet
中,嵌套路由呈现到ResponsiveDrawer
组件的Outlet
中。示例
ResponsiveDrawer
: