Я посмотрел на этот вопрос , но все же сумел заставить его работать.
Цель состоит в том, чтобы отделить стили от файла компонента, чтобы иметь более чистую настройку.
Работает нормально, если не задействовано theme
.
Я попробовал несколько итераций, с или без переноса withStyles
в
файлы styles.js.
Конкретный пример ниже, конечно, выдаст ошибку
TypeError: "theme.spacing is not a function"
Итак, я создал файл для css
следующим образом
styles.js
import { withStyles } from '@material-ui/core/styles';
export default theme => ({
...
textField: {
marginLeft: theme.spacing(1),
marginRight: theme.spacing(1),
}
...
});
Затем в файле компонента:
login.js
import styles from './styles';
...
render() {
const { classes } = this.props;
}
...
export default withCookies(withRouter(connect(mapStateToProps, mapDispatchToProps)(withStyles(styles, { withTheme: true })(Login))));