我有一个简单的组件:

class News extends Component {
  state = {
     isSimple: this.props.isSimple
  }
  render() {
    return (
      <div>
        <div className="extended">extended</div>
        simple text
      </div>
    );
  }
}

export default News;


我只想显示扩展的或简单的,所以我这样做:

class News extends Component {
  state = {
    isSimple: this.props.isSimple
 }
  render() {
    var text;
    if (this.state.isSimple) {
      text = "simple <br /> text";
    } else {
      text = <div className="extended">extended</div>
    }
    return (
      {text}
    );
  }
}


但是,如果state isSimple = true,那么这将向我显示:

simple <br /> text


代替:

simple
text


此外,它不是很清晰。我可以在render方法的中间设置if条件吗?

最佳答案

为什么需要保存文本并返回?而是返回jsx语句,而不是使用if语句,而是使用运算符。就像是:

class News extends Component {
  state = {
    isSimple: this.props.isSimple
  }
  render() {
    const { isSimple } = this.state;
    return (
       { isSimple ? <div>simple <br /> text</div>
       : <div className="extended">extended</div>
       }
    );
  }
}

07-24 19:42