Я использую Material UI с его стилизованной функцией для стилизации компонентов, таких как:
const MyThemeComponent = styled("div")(({ theme }) => `
color: ${theme.palette.primary.contrastText};
background-color: ${theme.palette.primary.main};
padding: ${theme.spacing(1)};
borderRadius: ${theme.shape.borderRadius};
`);
Это работает, но набор текста не работает, показывая поля после написания, как тип any
. Итак, мы остались без автозаполнения, подсказок и проверки ошибок.
Как обеспечить правильную работу набора текста в методе styled()?
это работает для вас https://codesandbox.io/s/themeusage-material-demo-forked-pikixf. Я не могу проверить это должным образом, работает ли автозаполнение в кодах и коробке.
Исправлено с использованием формата Emotion / Styled-Components вместо формата MUI, показанного в документации.
const MyThemeComponent = styled("div")`
color: ${({ theme }) => theme.palette.primary.contrastText};
background-color: ${({ theme }) => theme.palette.primary.main};
padding: ${({ theme }) => theme.spacing(2)};
border-radius: ${({ theme }) => theme.shape.borderRadius}px;
`;
К сожалению, это не так. В предложениях редактора указано, что единственное значение
theme.palette
— это значенияmode
иany
.