【问题标题】:React: state-based stylingReact:基于状态的样式
【发布时间】:2018-08-19 22:52:45
【问题描述】:

我有以下 React 组件:

class Parent extends Component {
  constructor(props) {
    super(props)

    this.state = {
      content: 'bad'
    }
  }

  render() {
    return (
      <div className="content-div">
        {this.state.content}
      </div>
    )
  }
}

我想根据this.state.content的文字渲染&lt;div&gt;,即如果文字是'bad',则背景色为红色,如果文字不是'bad',则颜色为绿色.

通过 CSS 执行此操作的最佳方式是什么(或者可能有其他更好的方式)?

【问题讨论】:

    标签: css reactjs


    【解决方案1】:

    其实有很多方法可以做到,这里是常规的方法

    <div className="content-div" style={this.state.content === 'bad' ? {backgroundColor: 'red'} : {backgroundColor: 'green'} }>
            {this.state.content}
          </div>
    

    更新:

    因为我更喜欢你对类使用相同的语法

    <div className={this.state.content === 'bad' ? 'myBadClass' : 'MyGreenClass'} >
            {this.state.content}
          </div>
    

    【讨论】:

    • 感谢您的回答。当有几个样式元素需要更改时,语法是什么?
    • 你可以简单地对类名使用相同的语法,我更新了我的答案
    猜你喜欢
    • 1970-01-01
    • 2017-02-25
    • 2017-01-19
    • 1970-01-01
    • 2018-12-21
    • 2019-07-11
    • 2021-11-13
    • 2017-02-03
    • 1970-01-01
    相关资源
    最近更新 更多