可能不是正确的答案,但我正在寻找一个非常相似的问题的答案,我希望我的能激发一些想法。就我而言,我有以下组件层次结构
<ListItem
className={classes.navLink}
component={Link}
activeClassName="active"
to={`/graphiql`}
button
>
<ListItemText
classes={{ primary: "navLink-text" }}
primary="GraphiQL"
/>
</ListItem>
这是一个名为 的响应式导航抽屉内的导航链接的表示NavDrawer
。使用此设置,ListItem
生成的 - 在活动时<a />
接收类名。active
Link
NavDrawer
可以接收包含类似导航链接的 navItems 道具。因此,为了在active
全局范围内定位和设置这些导航链接的样式,我在
NavDrawer
withStyles 中添加了以下内容:
const styles = theme => ({
"@global": {
".active .navLink-text": {
color: theme.palette.primary.main,
fontWeight: 500,
letterSpacing: "0.1em"
}
},
root: {
display: "flex"
},
// other rules here
}
有了这个,无论导航链接来自哪里,当它们在NavDrawer
.
的代码NavDrawer
基本上是来自 Material UI 文档的响应式导航抽屉的复制粘贴。