Нет проблем в отделении стилей от компонентов.
Я даже импортирую хук makeStyles
внутри styles.js
.
// styles.js
import { makeStyles } from '@material-ui/core/styles';
const styles = makeStyles(theme => ({
main: {
padding: theme.spacing(2),
},
}));
export default styles;
You можете импортировать useStyles
в компонент, если вам больше нравится
// Component.jsx
import React from 'react';
import styles from './styles';
const Component = () => {
const classes = styles();
return (
<WhatEverComponent classsName={classes.main}/>
);
}
LE: makeStyles
в компоненте
// styles.js
const styles = theme => ({
main: {
padding: theme.spacing(2),
},
});
export default styles;
// Component.jsx
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import stylesObj from './styles';
const styles = makeStyles(stylesObj);
const Component = () => {
const classes = styles();
return (
<WhatEverComponent classsName={classes.main}/>
);
}
Я сделал также песочницу здесь . Вы можете проверить, как работают оба. Я бы предложил использовать первый вариант.