javascript - 如何仅在某些路线上通过路由从材质 UI 渲染抽屉?(reactjs)(materialui)
问题描述
我的 react 项目中有一个 material-UI 抽屉,问题是抽屉组件在组件本身中有页面内容。我解决了以前的问题,即在抽屉中使用 react-router-dom 路由。我想知道该怎么做是我只希望抽屉在某些路线上显示,而不是全部。
我试图在抽屉组件中创建一些 if 语句,但找不到有效的语句。
路由.js
const Routes = () => {
return (
<Fragment>
<Switch>
<Route exact path='/' component={Landing} />
<Route path='/home' component={Index} />
<Route path='/login' component={Login} />
<Route path='/search' component={Search} />
<Route path='/mask' component={Mask} />
<Route component={NoMatch} />
</Switch>
</Fragment>
);
};
应用程序.js
const App = () => {
return (
<Provider store={store}>
<NavBar></NavBar>
</Provider>
);
};
NavBar.js(抽屉)的一小部分,它是显示内容的地方
<main className={classes.content}>
<div className={classes.toolbar} />
<ReactRouter></ReactRouter>
</main>
*ReactRouter = 路由.js
我希望此 NavBar.js 仅显示在 /search 和 /mask 上,而不显示在“/”、“/home”或“/login”上
解决方案
不要将Component
prop 传递给Route
,而是将组件添加为子组件。这样,您可以NavBar
像这样添加到您想要的路线:
(抱歉格式化,我在手机上)
<Route path='/mask'>
<NavBar />
<Mask />
</Route>
推荐阅读
- php - 更改 PHP 代码。日历事件数据未正确生成
- azure - 如何在天蓝色搜索中搜索特殊字符和带有特殊字符的单词?
- scala - 有没有办法选择在 Spark ui 应用程序中显示哪些作业?
- html - 显示带有 angular.io 标记的 html css 水平树的问题
- amazon-web-services - 覆盖 aws 胶水工作室中的数据
- database - 将 Data Studio 连接到 GCP VPC 网络中的 PostgreSQL
- c# - 根据编译时类型自定义 Json.NET 序列化
- gstreamer - 使用来自 gst-build 的介子交叉编译 gst-rtsp-server
- pandas - CSV 单行字段太少不会导致 Pandas 出错
- swift - 斯威夫特。将变换发布者组合到对象