样式化组件文本或段落

Posted

技术标签:

【中文标题】样式化组件文本或段落【英文标题】:Styled-Components Text or Paragraphs 【发布时间】:2020-07-16 22:36:06 【问题描述】:

是否可以使用样式组件设置文本或段落的样式?如果是,如何将文本传递到组件中?

例如,我有这个 Footer 组件:

const Footer = () => (
  <footer className="site-footer">
    <p className="text"> HELLO</p>
    <Copyright
      link='https://hotmail.com'
      text='HELOO'></Copyright>
  </footer>
);

export default Footer;

我想从全局类切换到 js 中的 css,这就是我想到使用 styled-components 的原因。现在我尝试了这个:

export const StyledText = styled.text`
    text: Hellooo
    color: white;
    text-align: center;
`

但是,如果我注释掉该段落并使用 StyledText 组件,则什么都不会显示。如果我尝试通过 Styled Component text='HELLO' 我的应用程序崩溃。如何以使用样式组件的方式转换页脚?

【问题讨论】:

您正在寻找 styled.p 而不是 .text,这是您要呈现的 html 元素 糟糕,我以为.p出错了。然而,将文本传递给它的正确方法是什么?那么styled.textfor 是什么? @Agney 【参考方案1】:

styled-components 只处理组件的样式而不是内容。所有children 都将被保留,因此您可以执行以下操作:

// JSX
<StyledText>Hello</StyledText>

// StyledText.js
export default styled.p`
  color: white;
  text-align: center;
`;

【讨论】:

【参考方案2】:

您可以将组件更新为如下所示:

import styled from 'styled-components';

const StyledText = styled.p`
  color: white;
  text-align: center;
`;

export default function Footer(text)
  return   <footer className="site-footer">
    <StyledText>text</StyledText>
    <Copyright
      link='https://hotmail.com'
      text=text/>
  </footer>;

您将能够像这样调用Footer 组件:

<Footer text="HELLO"/>

希望这会有所帮助,

【讨论】:

【参考方案3】:

是的,您可以设置每个html 元素和每个自定义组件的样式,只要它通过className

这个例子几乎涵盖了基本的 API:

const Text = styled.p`
  color: blue;
  text-align: center;
`;

const Copyright = ( className, link, text ) => (
  <div className=className>
    <Text>link</Text>
    <Text>text</Text>
  </div>
);

const StyledCopyright = styled(Copyright)`
  border: 1px black solid;
  $Text 
    color: palevioletred;
  
`;

const Footer = () => 
  return (
    <footer>
      <Text>HELLO</Text>
      <Copyright link="https://hotmail.com" text="World" />
      <StyledCopyright link="https://hotmail.com" text="World" />
    </footer>
  );
;

【讨论】:

以上是关于样式化组件文本或段落的主要内容,如果未能解决你的问题,请参考以下文章

样式化组件与 SASS(SCSS)或 LESS [关闭]

样式化组件中子组件输入焦点的样式父组件

如何间隔更改样式组件的样式?

在 React 中使用样式组件在图标旁边显示文本

如何使用 Enzymes shallow 和 styled-component 的 ThemeProvider 测试样式化组件?

使用状态自定义样式的反应+样式化组件