Используя стилизованные компоненты, вы можете получить доступ к реквизитам , передаваемым в пользовательский стилизованный компонент.
Таким образом, вы можете создать различные реквизиты «тем», которые вы передадите в StyledUpdownCell
, а затем получите доступ к тем внутри стилей компонентов. Например,
const StyledUpdownCell = styled.div`
border-color: ${props => props.warningTheme ? 'red' : 'black'};
`
используется:
<StyledUpdownCell warningTheme />
Вы также можете передавать реквизиты напрямую, но по умолчанию, например,
const StyledUpdownCell = styled.div`
border-color: ${props => props.borderColor || 'black'};
`
:
<StyledUpdownCell borderColor="violet" />
Это действительно зависит от вас и от того, как вы хотите разработать API своего компонента.
Примечание: я нашел эту маленькую библиотеку полезной для создания компонентов, которые имеют много разных реквизитов: https://github.com/yldio/styled-is