因此,我尝试使用材质ui添加深色主题模式。现在,我已经进行了以下设置,如果我手动从浅更改为暗,那么我的相对ui确实会变暗,问题是当我尝试使用开关进行操作时。因此,当我按下开关时,我可以在控制台中看到它确实会更新状态,然后将主题从浅色类型更改为深色类型,但是没有任何变化,它会保持亮状态,因为>
const mainTheme = createMuiTheme({
palette:{
primary:{
light: '#757ce8',
main: '#e91e63',
dark: '#002884',
contrastText: '#fff',
},
secondary: {
light: '#ff7961',
main: '#ff12f3',
dark: '#ba000d',
contrastText: '#000',
white:'#ffffff'
},
type:'light'
}
});
useDarkMode = () => {
const {
palette: { type },
} = this.state.theme;
console.log("TYPE:" + type);
const updatedTheme = {
...this.state.theme,
palette: {
...this.state.theme.palette,
type: type === "light" ? "dark" : "light",
},
};
this.setState({ theme: updatedTheme, count: 1 }, () =>
console.log(this.state.theme)
);
};
在渲染中我得到
const {data,country,theme} = this.state;
const themeConfig = createMuiTheme(theme);
console.log(themeConfig);
return(
<MuiThemeProvider theme={themeConfig}>
<FormControlLabel
control={<Switch onClick={this.useDarkMode} />}
/>
......content
</MuiThemeProvider>