reactjs - 设置导入的样式组件的样式

标签 reactjs styled-components

我有以下组件:

const StyledH3 = styled.h3`
  direction: ${(props) => (props.isRTL ? 'rtl' : 'ltr')};
`;

const H3 = ({ children }) => (
  <StyledH3 isRTL={isChildrenRTL(children)}>
    {children}
  </StyledH3>
);

export default H3;

我想扩展它的样式,例如在不同的文件中:

import { H3 } from 'components';

const Title = styled(H3)`
  background-color: red;
`;

我怎样才能实现这个目标?

最佳答案

您需要在导出的组件上公开 className 属性,以便它可以接收新的 className:

const StyledH3 = styled.h3`
    direction: ${(props) => (props.isRTL ? 'rtl' : 'ltr')};
`;

const H3 = ({ children, className }) => ( // Note - className prop.
    <StyledH3 
        className={className} // Need to add this here 
        isRTL={isChildrenRTL(children)}
    >
        {children}
    </StyledH3>
);
export default H3;

然后您可以按照您的建议在不同的文件中扩展组件样式:

import H3 from 'components';

const Title = styled(H3)`
    background-color: red;
`;

引用链接https://www.styled-components.com/docs/basics#styling-any-components

关于reactjs - 设置导入的样式组件的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48975311/

相关文章:

css - 我如何更改 svg 图标颜色?

javascript - 如何在不影响 DOM 的情况下使框展开并从原点过渡到屏幕中心?

javascript - 使用 Gulp 时如何将 React 设置为生产模式

javascript - React redux 应用文件夹结构

javascript - ReactJS:在包含ajax调用的.map()语句完成后执行代码

Css 菜单项/最佳方式 li 和一个或按钮

javascript - TypeScript:如何将 DefaultTheme 与样式组件结合起来?

reactjs - React 和 IIS 重写 url 配置

javascript - React 组件正在渲染,然后消失

reactjs - 带有 npm 链接的样式组件会导致错误 : "Trying to insert a new style tag, but the given Node is unmounted"