使用样式化组件针对特定 CSS 类

Target specific CSS classes with Styled Components

我该如何使用样式化组件来设计类似 react-datepicker 的样式? datepicker 库看起来像是使用某种类型的 BEM 样式(下面的屏幕截图),我通常只使用它们提供的 class 名称并使用 Sass 设置样式。但是,我如何使用样式化组件来定位那些 class 名称?这可能吗?

由于 styled-components 只是 CSS™,您可以像使用任何其他样式 sheet 一样使用它,方法是使用 react-datepicker 提供的 class 名称.

唯一的区别是您必须将日期选择器包装在一个包装器样式的组件中,该组件应用所有这些 classes:

const Wrapper = styled.div`
  & .react-datepicker {
    color: blue;
  }
`

<Wrapper>
  <Datepicker />
</Wrapper>

编辑:根据另一个答案,& 和句点 . 之间需要一个 space。

找了几个小时,我发现最好的解决方案是添加一个程式化的父组件(它可以是一个div)覆盖在需要类名的组件上,并将类名的定义直接添加到程式化的父组件。

VERY IMPORTANT:
A space is needed between the ampersand & and the class for this to take effect!

const StyledParent = styled.div`
   & .your-class-name {
     border-color: red;
   }
`;

<StyledParent>
   <Datepicker yourClassName="your-class-name" />
</StyledParent>
const Wrapper = styled.div`
  &.react-datepicker {
    color: blue;
  }
`

<Wrapper>
  <Datepicker />
</Wrapper>