从ReactJS中的某些NodeJS模块避开主题

问题描述

我正在使用ReactJS和MaterialUI编写一个单页应用程序。我的某些组件与MaterialUI文档不匹配。我发现这些组件的样式正在由使用相同MaterialUI库的另一个NodeJS模块(@ craftercms / studio-ui)更新。

ReactJS或MaterialUI中是否有一种方法不从特定的NodeJS模块加载样式?

我知道一种方法是简单地覆盖主题中的样式,但是维护样式将很有趣。

解决方法

您需要创建自己的主题,并在您的App周围添加MUI的ThemeProvider(来自@ material-ui / styles)组件。

您可能正在使用我们的CrafterCMSNextBridge组件。该组件具有自己的主题提供程序,因此请确保您的ThemeProvider位于其中,以便其中一个占主导地位。

类似这样的事情……

<CrafterCMSNextBridge>
  <ThemeProvider theme={yourCustomTheme}>
    <App />
  </ThemeProvider>
</CrafterCMSNextBridge>

值得一提的是,在我们的软件包的即将发布的版本中,配置要使用的主题会更加容易。