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";
但是如您所见,它说不稳定,我不知道以这种方式创建主题的缺点,目前它正在处理我的个人项目,同时具有全局严格模式。
我正在通过状态变量和 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";
但是如您所见,它说不稳定,我不知道以这种方式创建主题的缺点,目前它正在处理我的个人项目,同时具有全局严格模式。