Использовать общий makeStyles
для генерации внутреннего контента с spread_syntax вполне подойдет.
const style1 = (theme) => {
return {
a: {
marginRight: theme.spacing(1),
}
}
}
const style2 = (theme) => {
return {
b: {
marginRight: theme.spacing(2),
}
}
}
const mergedStyle = makeStyles((theme: Theme) =>
createStyles({
...style1(theme),
...style2(theme),
}),
);
Использование
export default function MyComponent() {
const classes = mergedStyle();
return (
<>
<div className={classes.a}></div>
<div className={classes.b}></div>
</>
)
}
Попробуйте онлайн:
Обновление
Если вы хотите передать параметры в mergeStyle
функцию
const mergedStyle = (params) =>makeStyles((theme: Theme) =>
createStyles({
...
}),
);
использование
const classes = mergedStyle(params)();
Смежный вопрос: как комбинировать каждый созданный стиль в материале