修改 props

在定义 Styled Component 时,可以利用 .attrs() 方法对要使用的 props 进行一些修改。.attrs() 接受一个 Lambda 表达式,表达式需要返回一个 JavaScript 对象,Styled Components 会自动将其与 props 对象合并。

const Input = styled.input.attrs(props => ({
  type: 'password',
  size: props.size || '1em'
}))`
  margin: ${props => props.size};
  padding: ${props => props.size};
`;

props 中可以直接携带 className 来使样式化组件直接使用已有的样式类,这样可以方便使用现有的 CSS 框架。