Ale*_*aga 5 layout reactjs react-router
在将 React Router 更新到 v6 后,我正在重构我的 React 应用程序,并且摆脱了路由中遇到的错误,但现在所需的布局已损坏。
我需要包含一个永久工具栏和一个仅在某些页面中可见的侧边栏。我试图遵循文档,但现在布局组件放置在它应该包装的所有页面之上,不仅仅是重叠它们,而且实际上将它们隐藏在后面。
布局组件:
function Layout({ children }) {
return (
<div className="layout">
<Header />
<SidePanel />
<div className="main" style={{ marginTop: "100px" }}>
{children}
</div>
</div>
);
}
export default Layout;
Run Code Online (Sandbox Code Playgroud)
AppRouter 组件:
function AppRouter() {
return (
<Router>
<Routes>
<Route path="/" exact element={<Home />} />
<Route path="/login" element={<Login />} />
<Route path="/sign-up" element={<SignUp />} />
<Route element={<Layout />}>
<Route path="/diary" element={<Diary />} />
<Route path="/results" element={<Results />} />
<Route path="/details" element={<Details />} />
<Route path="/about" element={<About />} />
</Route>
</Routes>
</Router>
);
}
export default AppRouter;
Run Code Online (Sandbox Code Playgroud)
Dre*_*ese 17
Layout应该为要渲染的Outlet孩子渲染一个。Routes
import { Outlet } from 'react-router-dom';
function Layout() {
return (
<div className="layout">
<Header />
<SidePanel />
<div className="main" style={{ marginTop: "100px" }}>
<Outlet />
</div>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
<Outlet>应该在父路由元素中使用An来渲染其子路由元素。这允许在渲染子路由时显示嵌套的 UI。
| 归档时间: |
|
| 查看次数: |
6312 次 |
| 最近记录: |