css - 使用样式组件扩展样式不起作用

标签 css reactjs styled-components

我正在尝试使用 styled-components 为 React 组件扩展样式,但没有成功。 AFAIK,我正在以正确的方式进行操作,但也许我遗漏了一些东西...... 这是我所拥有的:

import React from "react";
import styled from "styled-components";

const TextContainer = ({ text }) => {
  return <p dangerouslySetInnerHTML={{ __html: text }} />;
};

const Paragraph = styled(TextContainer)`
  background: red;
`;

class Home extends React.Component {
  render() {
    const { t } = this.props;
    return <Paragraph text="This is a test" />;
  }
}

export default Home;

当然,预期的结果是在 p 上有一个红色背景,但现在输出看起来像这样:

enter image description here

关于如何解决这个问题的任何想法?可能我遗漏了什么,但我不知道是什么。

提前致谢!

最佳答案

如文档中所述:

The styled method works perfectly on all of your own or any third-party components, as long as they attach the passed className prop to a DOM element.

示例

// This could be react-router-dom's Link for example, or any custom component
const Link = ({ className, children }) => (
  <a className={className}>
    {children}
  </a>
);

const StyledLink = styled(Link)`
  color: palevioletred;
  font-weight: bold;
`;

render(
  <div>
    <Link>Unstyled, boring Link</Link>
    <br />
    <StyledLink>Styled, exciting Link</StyledLink>
  </div>
);

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

关于css - 使用样式组件扩展样式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54113367/

相关文章:

php - float 的奇怪差距

javascript - 如何更改 html(jade 模板)以在生产中使用 *.min js 和 css?

javascript - 如何分别更改每个图标上单击时的颜色? React,样式组件

css - 如何使用带 react 动画的样式组件制作滑入和滑出

html - 更改 Bootstrap 的响应能力

html - 在 flexbox div 而不是浏览器窗口上渲染滚动条

reactjs - 如何通过 Webpack 的外部使用 CDN 导入 ReactJS Material UI?

reactjs - 在 React 组件之外访问 redux 存储的最佳方法是什么?

javascript - 路线应该声明一个屏幕。 [ react native 导航错误]

javascript - 通过样式化组件中的 Prop 进行映射