javascript - React 应用程序中带有动态文本的样式化组件

标签 javascript css reactjs styled-components

我正在开发 React 应用程序并使用样式化组件。到目前为止,一切进展顺利,我真的很喜欢它,但我在使我的样式化组件像我希望的那样可重用方面遇到了一些问题。

我觉得我的部分问题在于我仍在学习一些有关 React 和样式化组件的知识。

该应用程序是使用 react-boilerplate 构建的,因此我的组件标记基于他们的 example关于如何使用样式组件。我也在使用 Material UI。

import React from 'react';
import styled from 'styled-components';
import ListSubheader from 'material-ui/List/ListSubheader';

// styles for list subheader
const StyledListSubheade = styled(ListSubheader)`
  && {
    color: #fff;
    font-size: 0.75em;
    line-height: 16px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 12px 16px 20px;
  }
`;

class ListSubheader extends React.Component {
  render() {
    return (
      <StyledListSubheader>Title</StyledListSubheader>
    );
  }
}

export default ListSubheader;

很简单吧?但是,当我想在每个组件中更改 StyledListSubheader 中的文本时,我该怎么办?如果我想在两个不同的组件中导入 ListSubheader 并且我希望文本在一个组件中为 Title 而在另一个组件中为 Example 怎么办?如何动态更改该文本?

感谢任何帮助!谢谢!

最佳答案

使用 ListSubHeader 的 children 属性最容易做到这一点:

class ListSubheader extends React.Component {
  render() {
    return (
      <StyledListSubheader>{this.props.children}</StyledListSubheader>
    );
  }
}

您现在可以在其他组件中将其用作:

<ListSubheader>Whatever you like</ListSubheader>

关于javascript - React 应用程序中带有动态文本的样式化组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122350/

相关文章:

javascript - 海图.js : Possible to map paths/text to tick marks?

css - 溢出 :hidden messing with margins in Chrome and Safari

javascript - 我保证链接正确吗?

javascript - 如何从谷歌浏览器扩展中获取 PDF 文件的 URL

javascript - toString.call(array) 实际上做了什么?

javascript-events - 如何计算随机字符串中的字母数?

javascript - 单击编辑 jquery

CSS水平对齐三个div

javascript - 从一个 Action 函数清除 React Reflux 中多个 Store 的数据

javascript - react /ES6 : Arrow Function not binding "this" as expected