问题描述
我不知道如何使用 material-ui 中的 makeStyles 在 CSS 中做最简单的事情。
想象一下这个超级简单的例子:
<div classNames={clsx(wrapper,post.new && classes.new)}>
<p classNames={text}>Post</p>
<p> Something else </p>
</div>
样式也很简单:
const useStyles = makeStyles({
wrapper: {
// styles
},text: {
// styles
},new: {
text: {
color: 'red',// this does not work,why? :[
}
}
});
您现在大概可以猜到这里的问题是什么了。我希望包装器有时具有 new
类,当它发生时 text
变红。而已。我完全不知道该怎么做。
我知道有 '& .something'
但这看起来是一个糟糕的方法,我什至不知道文本的确切类名,因为类是胡言乱语(makeStyles-text-somerandomnumber
)。我不想将 .new 类添加到需要额外样式的所有内容中,如果我有多个段落需要不同的样式怎么办?无法维护。我想我一定遗漏了一些东西,它是如此微不足道,但是,不知道该怎么做!
任何帮助将不胜感激!
解决方法
className={`wrapper ${this.state.something}`}
我看到您的帖子标有 reactjs
,如果您使用 React,您可以根据类的状态动态应用这些类。
不要忘记模板文字的反引号。