将材质从浅色更改为深色时,React Material UI主题不会更改

时间:2020-05-04 23:52:00

标签: reactjs material-ui

因此,我尝试使用材质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>

0 个答案:

没有答案