reactjs - React js 通用布局与 React Router
问题描述
我正在使用 Ant Design 为我的反应应用程序创建布局。我为 Header、SideBar、FooterComp 创建了单独的组件,并将它们全部包含在 App.js 中。代码如下:
import React from "react";
import { Layout } from "antd";
import "./App.css";
import { NavBar } from "./components/Header";
import { SideBar } from "./components/Sidebar";
import { FooterComp } from "./components/Footer";
const { Content } = Layout;
const App = () => {
return (
<Layout>
<SideBar />
<Layout className="site-layout">
<NavBar />
<Content
className="site-layout-background"
style={{
margin: "24px 16px",
padding: 24,
minHeight: 487,
}}
>
Content
</Content>
<FooterComp />
</Layout>
</Layout>
);
};
export default App;
现在,我想使用 React Router 并在 Content 中渲染组件。我如何做到这一点?此外,我将创建另外两个组件,即用于登录和注册。我不希望这两个组件出现布局。
解决方案
你的反应路由器(v5)应该是这种格式
import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, Switch, Redirect } from 'react-router-dom';
import App from './components/App';
import Home from './components/home';
ReactDOM.render(
<Router >
<App>
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/home" component={Home} />
</Switch>
</App>
</Router>,
document.querySelector('#root')
);
并且在您的 App 组件中,内容使用 {props.children} 来加载主组件,同样您可以添加多个带有差异组件的路由
import React from "react";
import { Layout } from "antd";
import "./App.css";
import { NavBar } from "./components/Header";
import { SideBar } from "./components/Sidebar";
import { FooterComp } from "./components/Footer";
const { Content } = Layout;
const App = (props) => {
return (
<Layout>
<SideBar />
<Layout className="site-layout">
<NavBar />
<Content
className="site-layout-background"
style={{
margin: "24px 16px",
padding: 24,
minHeight: 487,
}}
>
{props.children}
</Content>
<FooterComp />
</Layout>
</Layout>
);
};
export default App;
默认情况下,此布局将为所有登录用户加载..注册和登录页面..在下面的线程中检查我的答案,检查用户是否经过身份验证,如果没有,则在其他情况下,您可以在没有默认值的情况下加载您的登录和注册组件(应用程序)布局
推荐阅读
- python - 使用 xarray 将 metapy 计算变量写入 netcdf
- json - 如何在使用反应时摆脱复杂的对象
- javascript - pruneRoots 函数在删除节点时在下面的树算法中返回 undefined。无法使其工作。我究竟做错了什么?
- javascript - 通过检索一段 url 显示产品(使用 JS 变量中的 $php 变量)
- php - 通过 Volley 将 Android kotlin 连接到 Php 服务器
- javascript - 如何在底部显示带有幻灯片名称的轮播图像?
- python - 如何在 python 3.9.6/3.7.6 上安装 web3?
- c# - 为什么会出现“在商店中搜索应用程序”对话框?
- python - yfinance 作为 pandas_finance 的替代品
- elasticsearch - 是否有一个 ID 可以唯一地对所有日志进行分组 - APM Elasticsearch