Я ищу что-то вроде ThemeConsumer (которого, вероятно, не существует). У меня есть компонент React, и я использую withStyles()
компонент более высокого порядка для добавления пользовательских стилей. Это довольно хорошо описано в документации , но я не нашел ни одного примера, использующего тему.
У меня есть некоторый базовый компонент, который содержит ThemeProvider . Это означает, что это влияет на любой из компонентов MUI.
const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
const theme = getTheme(prefersDarkMode);
return (
<ThemeProvider theme={theme}>
...
</ThemeProvider>
)
Я также использую некоторые функциональные компоненты с makeStyles()
для создания стилей с предоставленной темой.
const useStyles = makeStyles(theme => ({
// here I can use theme provided by ThemeProvider
});
Но его нельзя использовать в компонентах класса . Поэтому я использую withStyles()
HO C.
const styles = {
// I would like to use here provided theme too
}
export default withStyles(styles)(SomeComponent);
Резюме моего вопроса:
Как использовать предоставленную тему в компоненте класса?