如何在JSX中使用If-Else

Nic*_*lsh 4 javascript reactjs react-jsx

我理解如何在简单的情况下使用它:

{(this.state.show) ? <span>Show</span> : null}
Run Code Online (Sandbox Code Playgroud)

但是如何将它用于大型DOM呢?

{ if (this.state.show) {
  <span className={this.state.className}>Hi</span>
  {this.state.text}
} else {
  {this.state.text}
}
}
Run Code Online (Sandbox Code Playgroud)

当然,它不起作用.怎么做正确?

awe*_*wei 5

你不能这样做.我从你提供的内容中看到了两个潜在的问题.首先,您只能返回一个DOM节点.第二,(这可能是因为它不是你的完整代码),你的大括号在语法上是不正确的.在不知道完整源代码的情况下,您可以尝试以下方法:

render: function() {
    var header;

    if (this.state.show) {
        header = <span className={ this.state.className }>Hi</span>;
    }
    return <div>
               { header }
               { this.state.text }
           </div>
}
Run Code Online (Sandbox Code Playgroud)