微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Material-UI ThemeProvider 全局覆盖样式,而不是仅覆盖组件

如何解决Material-UI ThemeProvider 全局覆盖样式,而不是仅覆盖组件

我有一个带有多个 Material-UI 选择的 React 组件。现在我想覆盖其中之一的一些样式,所以我创建了一个主题,现在想通过 ThemeProvider 应用它。 我的问题是 ThemeProvider 会覆盖每个 Select 的样式,而不仅仅是它所环绕的样式。

在谷歌搜索时,我发现了很多问题,如何让 ThemeProvider 在全球范围内应用其覆盖,但这与我想要做的相反。 我希望 ThemeProvider 仅将其覆盖应用到它所环绕的组件。 在我的用例中是否有更好的替代方案来使用 ThemeProvider?如果是,它必须使用基于类的组件(因为我在这里使用一个

显示我的问题的代码沙盒:https://codesandbox.io/s/twilight-sun-vyl9i

我对 Material-UI 还很陌生,所以如果我做错了什么,请原谅我。

解决方法

好的,我自己找到了解决方案。根据此 issue on the material-ui github ,存在一个 v4 错误,即多个 ThemeProviders 必须具有父 ThemeProvider 元素。据他们说,它将在即将到来的 v5 中修复。

所以我所做的,我只是在我的 <ThemeProvider> 周围包裹了一个 <div className="App"> 而没有给它一个 theme 道具。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。