@eydeveloper

Как лучше выносить кастомизацию компонентов библиотеки MUI?

К примеру есть следующий JSX в компоненте:
<Box
      component="form"
      onSubmit={handleLogin}
      sx={{
        display: 'flex',
        justifyContent: 'center',
        alignItems: 'center',
        height: 'calc(100vh - 64px)'
      }}
    >
      <Card sx={{padding: 5, boxShadow: 3}}>
        <Typography variant="h5" sx={{textAlign: 'center'}}>Вход</Typography>
        ...
      </Card>
</Box>


Каким способом лучше всего будет вынести кастомную стилизацию элементов, заданную с помощью атрибута sx?

Пробовал с использованием функции styled(), описанный пример в документации MUI - https://mui.com/material-ui/customization/how-to-c.... Но проблема в том, что не получается прокинуть children, такой способ у меня сработал только для элементов без дочерних элементов.

Пробовал также вынести атрибуты в отдельный скрипт:

Header.styles.ts:
const headerStyles = {
  AppBar: {
    position: 'static',
    color: 'transparent',
    sx: {
      boxShadow: 1
    }
  }
};

export default headerStyles;


Header.tsx:
...
<AppBar {...headerStyles.AppBar}>
...


В результате typescript кидает ошибку:
62c6dbd37e88c980057179.png
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы