我想在material-ui@next
上制作一个项目,但我不想使用withStyles
。但装扮TypeScript
不想共存的草稿@withStyles
。问题出现了 - material-ui@next
可以使用而不诉诸withStyles
吗?
答案 0 :(得分:6)
您可以使用不带withStyle()
,as described in their documentation的材质用户界面。
如果您尝试将className添加到Material UI组件(假定导入的样式类似于import ./style.css
),则默认情况下,由于CSS注入顺序,该样式可能会被Material UI样式覆盖。
如果您在浏览器的运行时期间查看应用程序HTML的<head>
,您可能会注意到您导入的任何自定义CSS样式可能会出现之前任何材质UI样式。当他们这样做时,后面定义的样式将优先,并否定您的自定义样式。
解决这个问题的一种方法是在<!-- jss-insertion-point -->
的底部添加一个像<head>
这样的HTML注释,以便JSS(由Material UI使用)知道正确注入{{1}的位置}标签。
使用它,将您的应用程序组件放在入口点JavaScript文件中的<link>
中,如下所示:
JssProvider
上面道具中使用的变量定义如下:
<JssProvider jss={jss} generateClassName={generateClassName}>
<YourAppGoesHere />
</JssProvider>
完成上述操作后,将首先显示材质UI样式,然后是自定义样式。这样,您的自定义样式将始终优先于Material UI。