使用样式化组件扩展样式无效

seb*_*nka 3 css reactjs styled-components

我正在尝试使用来扩展React组件的样式,styled-components但无法正常工作。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;
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

关于如何解决这个问题的任何想法?可能我缺少了一些东西,但我不知道是什么。

谢谢是前进!

Mos*_*ini 11

如文档中所述:

风格化的方法完美的作品在所有你自己或任何第三方组件的,因为只要它们连接的传递的className 道具 DOM元素。

// This could be react-router-dom's Link for example
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>
);
Run Code Online (Sandbox Code Playgroud)

参考:https : //www.styled-components.com/docs/basics#styling-any-components

  • 仅当在同一文件中定义链接并且不导入它时,这才有效 (5认同)