Это так просто, в ваших someThing
CSS-кодах выберите p
элементы с классом someOtherThing
именем класса и используйте not()
CSS-операцию для p
на верхнем уровне, см. Следующий код:
const styles = {
someThing: {
color: "green",
border: "solid 2px black",
margin: 30,
"& [class*='SomeOtherThing']": {
backgroundColor: "pink" //
},
"& :not([class*='SomeOtherThing'])": {
fontWeight: "bold" // Just for top level p
}
}
};
и
const SomeOtherThing = ({ classes, children }) => {
return (
<p className={classes.root}> I'm another thing {children} </p>
);
};
CodeSandBox
Способ, которым это работает, заключается в том, что, предоставляя SomeOtherThing
любой класс jss, он будет визуализироватьЭлемент dom выглядит примерно так:
<p class="SomeOtherThing-root-0-1-2"> I'm another thing I have some children </p>
, с которым будет совпадать селектор атрибутов [class*='SomeOtherThing'
] .
Обратите внимание, что этот селектор будет применяться и ко всем более глубоким вложенным SomeOtherThing
с.