javascript - 样式化的组件不会覆盖来自另一个组件的样式

标签 javascript reactjs styled-components

我有一个已经像这样构建的组件:

const Banner = ({ image, heading, text }) => (
  <Container>
    <Background src={image}>
      <BannerContent>
        <h1>{heading}</h1>
        <h2>{text}</h2>
      </BannerContent>
    </Background>
  </Container>
);

const BannerContent = styled.div`
  h1 {
    font-size: 24px;
  }

  h2 {
    font-size: 16px;
  }
`;

我正在尝试覆盖 h1 的样式和 h2并在另一个组件中添加新样式:
const PageBanner = styled(Banner)`
  h1 {
    font-size: 20px;
    width: ...
  }

  h2 {
    font-size: 13px;
    width: ...
  }
`;

然而,这一切都没有发生。我假设它是因为它嵌套在那里?我可以覆盖样式吗?或者我应该只构建一个类似的组件吗?

最佳答案

如果您正在为自己的自定义组件之一设置样式,则必须确保使用 className prop that styled components gives to the component .

const Banner = ({ image, heading, text, className }) => (
  <Container className={className}>
    <Background src={image}>
      <BannerContent>
        <h1>{heading}</h1>
        <h2>{text}</h2>
      </BannerContent>
    </Background>
  </Container>
);

const PageBanner = styled(Banner)`
  h1 {
    font-size: 20px;
    width: ...
  }

  h2 {
    font-size: 13px;
    width: ...
  }
`;

关于javascript - 样式化的组件不会覆盖来自另一个组件的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51636412/

相关文章:

reactjs - 通过 XPath 获取 tr 中特定 td 的索引

styled-components - 如何将 React DnD 与样式组件一起使用?

javascript - 在.map函数react中使用变量

javascript - 我正在使用 Geckofx-22,没有页眉和页脚就无法打印

javascript - react-dom/server 是否在客户端工作?

javascript - React.js 应用程序流程错误

reactjs - 如何在样式组件中添加功能

javascript - 在 styled-components 中传递一个 window.onload 函数

javascript - 在我的 html 中包含 event.keycode == 13 后 &lt;textarea&gt; 换行不起作用

javascript - 使用 Selenium WebDriverJs 关闭警报