jsx if else快捷方式隐藏元素

Jes*_*son 2 javascript if-statement ecmascript-6 reactjs react-jsx

我可以

<p>Company: {{this.state.user.company}}</p>
Run Code Online (Sandbox Code Playgroud)

但是有时候公司没有价值。那么我应该如何隐藏整个

公司财产是否为空?

我试过了

<p>({this.state.user.company} ? 'Company: ' + {this.state.user.company} : '')</p>
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

Ori*_*ori 7

React 不会渲染虚假值,因此您可以使用短路评估。如果this.state.user.companynull,它将被反应忽略。如果它是真的,react 将在 之后渲染元素&&

render() {
    return (
        <div>
        {this.state.user.company &&
            <p>Company: {this.state.user.company}</p>
        }
        </div>
    );
}
Run Code Online (Sandbox Code Playgroud)

  • 称为短路。 (2认同)

tay*_*c93 5

Ori Drori答案的替代语法(我觉得这更容易阅读):

render() {
  return (
    {this.state.user.company ? <p>Company: {this.state.user.company}</p> : null}
  )
}
Run Code Online (Sandbox Code Playgroud)