在主题中访问useState的值

时间:2020-10-04 13:32:27

标签: reactjs material-ui next.js use-state

我正在用MaterialUI构建一个React NextJS应用程序。我有一个带有开关的标头组件,我基本上想用它在主题文件(单独的文件)中的暗和亮模式之间切换。基本上,我的问题是我如何才能基本获得在主题文件中的“开关”上使用的useState的值,以在暗模式和亮模式之间进行切换。 谢谢! 〜最大

Header.tsx(logic)

theme.tsx

编辑2:关于堆栈闪电的示例 https://stackblitz.com/edit/react-ts-hmqdnk?file=NavBar.tsx

1 个答案:

答案 0 :(得分:1)

您可以创建一个返回暗或亮主题的函数,具体取决于将作为Switch组件值的函数参数。

const getTheme = (light) => {
    let lightTheme = {
        palette: {
            type: 'light',
        }
    }

    let darkTheme = {
        palette: {
            type: 'dark',
        }
    }
    
    return createMuiTheme(light ? lightTheme : darkTheme)
}