有没有办法将styled-components与react-bootstrap一起使用?react-bootstrap 公开bsClass
属性而不是className
其组件,这似乎与样式化组件不兼容。
有什么经验吗?
有没有办法将styled-components与react-bootstrap一起使用?react-bootstrap 公开bsClass
属性而不是className
其组件,这似乎与样式化组件不兼容。
有什么经验吗?
您可以扩展样式以保持组件的原始样式从引导程序。您将在此处找到更多关于使用第三方库(如 react bootstrap with styled-components)的文档。
const StyledButton = styled(Button)`
color: palevioletred;
font-size: 1em;
margin: 1em;
padding: 0.25em 1em;
border: 2px solid palevioletred;
border-radius: 3px;
`;
这是一个沙箱供参考:https ://codesandbox.io/s/2vpm40qk90
我想提供一个更好的选择和方法。
我之前一直在使用 react-bootstrap,我们发现当前的实现并没有将 bootstrap 完全移植到 react 中,我们仍然需要依赖外部文件,例如 CSS/Fonts,这不是样式化组件的理念和最佳实践。
考虑到 styled-components 提供 css 接口,我们在一个名为bootstrap-styled的项目中移植了具有最佳 ES6 实践的 bootstrap 4 。
这个 Bootstrap 的 Twitter Bootstrap v4实现完全针对样式化组件实现,无需 CSS 或额外文件。
从完整的 js api、主题、模块化和可重用性开始,这带来了几个好处。
要覆盖样式,可以通过<ThemeProvider />
或使用props.theme
任何组件来完成。我们还导出了一个<BootstrapProvider />
组件,该组件在其范围内包含<ThemeProvider />
并提供引导类实用程序,例如.d-none
,等等。
你可以在这里看到一个演示