我正试着用React Router v4渲染多个布局 .
例如,我想要具有以下路径的页面具有布局1:
-
确切路径= "/"
-
path = "/blog"
-
path = "/about"
-
path = "/projects"
以及具有布局2的以下路径:
-
path =“/ blog /:id
-
path =“/ project /:id
有效的是这里回答的是v4:Using multiple layouts for react-router components
3 回答
所以,为此你应该使用渲染功能(https://reacttraining.com/react-router/core/api/Route/render-func)
一篇非常好的文章帮助了我:https://simonsmith.io/reusing-layouts-in-react-router-4/
最后你将使用这样的东西:
其他答案都没有用,所以我提出了以下解决方案 . 我使用了 render 道具而不是最高级别的传统
component
道具 .它使用
layoutPicker
函数根据路径确定布局 . 如果该路径未分配给布局,则返回"bad route"消息 .simple-layout.js
和full-layout.js
遵循以下格式:我利用你的两个解决方案解决了这个问题:
My Routes.js file
Base.js (路由导入的地方)
布局
BaseWithNav.js
BaseNoNav.js
我希望这有帮助!