Reactjs 将本机组件作为逻辑条件进行反应

Reactjs 将本机组件作为逻辑条件进行反应,reactjs,react-native,Reactjs,React Native,我在看一个repo,它有一个带有条件的render语句,该条件将实际组件作为逻辑条件 return <Component> { this.state.loading == true && <ActivityIndicator animating={this.state.loading} /> || <View> ...

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

return <Component>
    {
       this.state.loading == true && 
       <ActivityIndicator 
          animating={this.state.loading} 
       /> ||
       <View>
           ...
       </View>
    }
</Component>
返回
{
this.state.load==true&&
||
...
}
我将其解释为“如果状态正在加载”,并且对reactDOM.render()的调用返回一些东西,或者对reactDOM.render()的调用返回一些东西,然后

但是,那是我的错。然后呢

这是某种三元结构吗?
组件中的花括号是什么?指定条件的结果在哪里?

这称为

这是javascript的语言特性。当使用
&&
|
链接表达式时,它将始终是最后返回的值。Python对
以及
运算符也有同样的作用。其他一些语言(如PHP)总是返回布尔值

事实上,这意味着:

expr1和&expr2

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

expr1 | expr2

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

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

您的示例只是将其中两个链接在一起,导致:“If
this.state.load
is truthy return
else return
”。这滥用了这样一个事实,即
null
未定义
true
false
都是有效的节点,它们实际上不会为条件呈现而呈现任何内容。

这被称为

这是javascript的语言特性。当使用
&&
|
链接表达式时,它将始终是最后返回的值。Python对
以及
运算符也有同样的作用。其他一些语言(如PHP)总是返回布尔值

事实上,这意味着:

expr1和&expr2

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

expr1 | expr2

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

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

您的示例只是将其中两个链接在一起,导致:“If
this.state.load
is truthy return
else return
”。这滥用了以下事实:
null
undefined
true
false
都是有效的节点,它们实际上不为条件渲染而渲染任何内容