Material-UI 来回切换主题时颜色不变

Material-UI unchanged colors when switching back and forth between themes

我正在通过状态变量和 MuiThemeProvider 在我的应用程序中更改主题 切换活动主题时,所有组件上的颜色都会正确更新,但只会更新一次。如果我切换回已经使用过的主题,颜色不会更新。

https://codesandbox.io/s/focused-mcnulty-0tzm2?file=/src/App.js

您可以看到,在 codesandbox 上,如果您要更改的主题已被使用,来回切换会导致最后一个主题“卡住”。

我可以在设置组件样式时通过在 makeStyles() 上使用 theme.palette.primary.main 来“解决”这个问题,但这有点违背组件 color 属性的目的

Material-UI 尚未完全支持 StrictMode (https://github.com/mui-org/material-ui/issues/20708)。如果您删除 index.js 中的 <React.StrictMode> 标签,它会正常工作。

这是您的沙箱的工作版本:https://codesandbox.io/s/strictmode-theme-switching-issues-7prfe

您可以使用以下导入创建严格模式主题。

import { unstable_createMuiStrictModeTheme } from "@material-ui/core/styles";

但是如您所见,它说不稳定,我不知道以这种方式创建主题的缺点,目前它正在处理我的个人项目,同时具有全局严格模式。

Documentation