我有一个<Section>
组件:
const styles = theme => ({
section: {
backgroundColor: theme.colors.primary,
color: theme.colors.white,
'& a:not(.button)': {
color: 'currentColor',
textDecoration: 'underline',
},
},
});
和<Button>
组件:
const styles = theme => ({
button: {
backgroundColor: theme.colors.light,
color: theme.colors.dark,
padding: theme.spacing.default,
},
});
基本上,我想在<Button>
内使用<Section>
并且不会覆盖其颜色。
我无法使用& a:not($button)
,因为它位于不同的组件中。
答案 0 :(得分:0)
我刚测试过的一个可能的解决方案就是将year_one_variable = None
添加到!important
样式中。感觉很脏......
答案 1 :(得分:0)
更好的解决方案是将选择器修改为:a:not([class^="button"])
,它将针对JSS生成的类。
答案 2 :(得分:0)
不要使用选择器隐式覆盖组件样式。这是一种非常脆弱的方法,因为它破坏了封装,在某些时候它会打破你的风格。
您应该在按钮组件中使用color: inherit
并让父对象始终定义颜色或使用显式覆盖: