将本机组件作为逻辑条件

时间:2018-02-08 08:35:36

标签: reactjs react-native

我正在查看一个repo,它有一个带有条件的render语句,该条件具有实际组件作为逻辑条件。

tag

我将其解释为,如果州正在加载'并且这个对reactDOM.render()的调用返回一些东西或者这个调用到remDOM.render()返回一些东西,然后......

但那时候我正在接受我。什么?

这是某种三元吗? return <Component> { this.state.loading == true && <ActivityIndicator animating={this.state.loading} /> || <View> ... </View> } </Component> 内的大括号是什么?指定条件的结果在哪里?

1 个答案:

答案 0 :(得分:2)

这称为Short-circuit evaluation

它是javascript的语言功能。使用&&||链接表达式时,它将始终是返回的最后一个值,即被评估。 Python对andor运算符执行相同的操作。其他一些语言,例如PHP总是返回一个布尔值。

事实上,这意味着:

  

<强> expr1 && expr2

     

如果可以转换为false,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,&amp;&amp;如果两个操作数都为真,则返回true;否则,返回false。

     

<强> expr1 || expr2

     

如果可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,||如果任一操作数为真,则返回true。

此外,&&优先于||,这意味着a || b && c相当于a || (b && c)

您的示例只是将其中两个链接在一起导致:&#34;如果this.state.loading是真实的,则返回<ActivityIndicator>,否则返回<View>&#34;。这会滥用这一事实:nullundefinedtruefalse是有效的节点,实际上不会为条件渲染呈现任何内容。