material-ui @ next没有withStyles?

时间:2017-12-23 11:30:48

标签: reactjs typescript material-ui

我想在material-ui@next上制作一个项目,但我不想使用withStyles。但装扮TypeScript不想共存的草稿@withStyles。问题出现了 - material-ui@next可以使用而不诉诸withStyles吗?

1 个答案:

答案 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。