javascript - 将样式化组件作为类名传递给另一个组件

标签 javascript reactjs styled-components

我正在使用 react-paginate接受 props 中的类名来设置内部组件样式的库:

<ReactPaginate
    ...
    breakClassName={'break-class-name'}
    containerClassName={'pagination-class-name'}
    activeClassName={'active-class-name'} />

我也在使用 styled-components,所以我想避免使用纯 CSS 或 createGlobalStyle 来样式化 react 组件。有什么方法可以将样式从 styled-components 传递到 ReactPaginatebreakClassNamecontainerClassName 属性?

我试过了,但它不起作用,因为 Button.toString() 返回没有样式的类名:

const Button = Styled.button`
    color: green;
`

export default () => (
    <ReactPaginate
      ...
      breakClassName={Button.toString()} />
)

下面的代码也不起作用,因为 Button 有类名 my-class-name,但是这个类名没有样式:

const Button = Styled.button.attrs({ className: 'my-class-name' })`
    color: green;
`

export default () => (
    <ReactPaginate
      ...
      breakClassName='my-class-name' />
)

有什么办法吗?

最佳答案

你试过制作<Button as={Component} />吗? ?


更新:

你可以对类使用包装器

const ReactPaginateStyled = styled(ReactPaginate)`
  &.break-class-name {
    //your styles
  }
  &.pagination-class-name {
    //your styles
  }
  &.active-class-name {
    //your styles
  }
`;

关于javascript - 将样式化组件作为类名传递给另一个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60976624/

相关文章:

javascript - Angular 更新 $scope 变量在循环内

javascript - 无法在对象方法中的箭头函数上绑定(bind)上下文

javascript - 从 geoJson 获取参数

javascript - React - 触发子组件的getter方法

javascript - 新文件阅读器(); react 。遍历项目时

javascript - 重新编写,TypeScript : Cannot find module '@rescript/react/src/ReactDOM.gen' or its corresponding type declarations

reactjs - 如何访问媒体查询样式组件中的 postcss 变量?

reactjs - 尝试将 MaterialUI 主题 Prop 传递给样式组件时出现“未定义”

reactjs - 使用主题时如何将 Prop 传递给样式组件?

javascript - 用你自己的覆盖浏览器拼写检查?