gpt4 book ai didi

reactjs - 如何在react js中检查 Material ui主题的类型? (浅色或深色)

转载 作者:行者123 更新时间:2023-12-04 15:14:34 26 4
gpt4 key购买 nike

我想根据 Material ui主题的类型是浅色还是深色来创建某些条件
我怎样才能做到这一点?

最佳答案

您需要重新创建主题并更新值 theme.palette.type ( 'light''dark' )并将其传递给 ThemeProvider应用更改。

const defaultTheme = createMuiTheme({
palette: {
type: "light"
}
});

function App() {
const [theme, setTheme] = React.useState(defaultTheme);
const onClick = () => {
const isDark = theme.palette.type === "dark";
setTheme(
createMuiTheme({
palette: {
type: isDark ? "light" : "dark"
}
})
);
};

return (
<ThemeProvider theme={theme}>
<Card>
<Typography variant="h3">{theme.palette.type}</Typography>
<Button onClick={onClick}>Toggle theme</Button>
</Card>
</ThemeProvider>
);
}
然后,您可以使用 hook 或 HOC 检查子组件中的主题类型

const isDarkTheme = useTheme().palette.type === 'dark';
高铁
const ThemedComponent = withTheme(Component)
render() {
const isDarkTheme = this.props.theme.palette.type === 'dark';
return (...)
}
现场演示
Edit 64557510/how-can-i-check-the-type-of-material-ui-theme-in-react-js-light-or-dark

关于reactjs - 如何在react js中检查 Material ui主题的类型? (浅色或深色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64557510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com