Ответ 1
Вы можете поделиться текущими строками CSS или поделиться компонентами styled-components
:
- Поделиться строками CSS:
import {css} from 'styled-components'
const sharedStyle = css'
color: green
'
// then later
const ComponentOne = styled.div'
${sharedStyle}
/* some non-shared styles */
'
const ComponentTwo = styled.div'
${sharedStyle}
/* some non-shared styles */
'
- Поделиться фактическим
styled-components
:
const Shared = styled.div'
color: green;
'
// ... then later
const ComponentOne = styled(Shared)'
/* some non-shared styles */
'
const ComponentTwo = styled(Shared)'
/* some non-shared styles */
'
Обновление: на основе вопросов в комментариях я создал пример, демонстрирующий, что передача реквизитов в функцию styled-components css
работает так же, как и передача реквизитов в сами компоненты: https://codesandbox.io/s/2488xq91qj?fontsize=14. Официальная рекомендация styled-components
- всегда переносить строки, которые вы передадите в styled-components
в функции тега css
. В этом примере компонент Test
получает цвета фона и переднего плана через переданные реквизиты, встроенные в переменную cssString
, созданную путем вызова функции css
.