reactjs - React Router 4 根据路径渲染多个布局?
问题描述
这是我正在尝试使用的一个非常简单的示例。
export default class AppRouter extends Component {
render() {
return (
<div className="website-wrapper">
<Switch>
<MainLayout>
<Route exact path="/" component={App} />
</MainLayout>
<AnonLayout>
<Route path="/login" component={LoginContainer} />
</AnonLayout>
<Route component={NotFound} />
</Switch>
</div>
);
}
}
非常简单,但它没有像您期望的那样运行
它总是渲染mainLayout
并且仅显示App
确切路径为 时的内容/
。
AnonLayout
并且NotFound
根本不会触发。
我曾经能够在版本 3 中做类似的事情,但这不适用于最新版本,似乎他们改变了路由在版本 4 中完全工作的方式,并且文档没有提及布局和渲染布局。
感谢帮助!
解决方案
不太确定您要在这里做什么,但是如果您不想将 MainLayout 放在 App 组件中,则可以执行以下操作:
<Route exact path="/" render={() =>
<MainLayout>
<App />
</MainLayout>
/>
推荐阅读
- javascript - 如何在 Axios 中运行微调器?
- fatfs - 带有 esp-idf 的 ESP32 上的 FatFs 无法创建带有 *.json 扩展名的文件
- excel - 在 Microsoft Excel 中使用 VBA 根据日期更改字体颜色
- javascript - 选择选项后我可以显示图像吗?
- javascript - 我们如何使用 three.js 为 WebXR 使用 equirectangular 图像?
- azure-devops - Dynamics 365 OnPremise + VPN = AzureDevOps 中的 CI/CD 流程
- javascript - 如果名称和日期匹配两个 API JSON 数据,如何求和?
- c# - 是否可以在临时文件夹之外的 azure function app 中临时保存文件?
- java - json api中的一个对象可以有两个id吗
- reactjs - 在 React JS 应用程序中将 JWT 令牌和用户 ID 存储在哪里?