Допустим, у меня есть файл с темами:
themes. js:
import {createMuiTheme} from "@material-ui/core/styles";
export const myTheme = createMuiTheme({
palette: {
text: {
color: "#545F66",
},
},
});
И файл с приложением. js, где рендер выглядит примерно так:
return (
<MuiThemeProvider theme={myTheme}>
<CssBaseline />
<MyComponent />
</MuiThemeProvider>
);
Теперь я знаю, что могу получить доступ к теме через withStyles:
const StyledMyComponent = withStyles(theme => ({
something: {
color: theme.palette.text.color
}
}))(props => <MyComponent {...props} />);
Но я хочу достичь чего-то другого. MyComponent является очень большим компонентом и имеет, например, класс под названием «response-table-1». И я хочу установить цвет класса «response-table-1» для theme.palette.text, так что-то вроде этого:
const StyledMyComponent = withStyles(theme => ({
"react-table-1": {
color: theme.palette.text
}
}))(props => <MyComponent {...props} />);
Но, очевидно, это не работает. Кто-нибудь знает возможно ли это ? И как я могу этого добиться.
Я могу установить цвет "response-table-1" в файле css, но я хочу изменить его внутри реакции через кнопку, и поэтому мне нужно что-то подобное.
Живая демоверсия: https://stackblitz.com/edit/react-jt9xs1