javascript - 将 Styled 组件作为 className 传递给另一个组件
问题描述
我正在使用react-paginate库,它接受道具中的类名来设置内部组件的样式:
<ReactPaginate
...
breakClassName={'break-class-name'}
containerClassName={'pagination-class-name'}
activeClassName={'active-class-name'} />
我也在使用styled-components
,所以我想避免使用纯 CSS 或createGlobalStyle
. 有没有办法将样式从styled-components
tobreakClassName
和containerClassName
props of传递ReactPaginate
?
我试过这个,但它不起作用,因为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
}
`;
推荐阅读
- python - Python - RemoteDisconnected:远程结束关闭连接没有响应
- android - 无法从原生 android 获取数据以使用平台通道颤动?
- javascript - 通过Javascript加载存储在同一文件夹中的HTML页面(在同一选项卡中)
- javascript - Javascript - 将 ParentId 更新为嵌套对象
- node.js - 将 RESTful API 重构为更小的函数
- seaborn - How to remove a specific value from a countplot?
- ag-grid - 如何优化 AG-Grid 中的 rowBuffer 设置,尤其是主从网格中的子行?
- python - 在每个聚合值旁边添加计数
- javascript - 图标没有向右浮动,我能得到的最远的是中央
- gitlab - 如何在 gitlab ci/cd 中组合规则