Впервые на материал-UI здесь и пытается найти лучший способ использования CSS в JS.Из демонстрационного кода я вижу, что вставка стилей в виде классов довольно проста с использованием withStyles, но если я сделаю следующее, мне потребуется заново создать стили «grow» и «defaultPadding» в каждом компоненте.
import React from 'react';
import { withStyles } from '@material-ui/core/styles';
import Paper from '@material-ui/core/Paper';
function Dashboard(props) {
const { classes } = props;
return (
<Paper className={classes.defaultPadding}>
Hello
</Paper>
);
}
const styles = theme => ({
grow: {
flexGrow: 1
},
defaultPadding: {
padding: theme.spacing.unit * 3 + 'px'
}
});
export default withStyles(styles)(Dashboard);
Я мог бы легко создать фабричный метод во внешнем файле, который возвращает массивный объект, содержащий все мои стили по умолчанию, но мне нужно было бы передать ему существующую тему, если я хочу использовать такие вещи, как 'theme.spacing.unit '.
Итак, есть ли способ создать несколько моих собственных стилей многократного использования, используя значения тем, а затем импортировать их в любой компонент?
Бонусный вопрос: Возможно ли создавать вложенные объекты, чтобы я мог делать такие вещи?...
className={classes.layout.header}