我正在查看一个repo,它有一个带有条件的render语句,该条件具有实际组件作为逻辑条件。
tag
我将其解释为,如果州正在加载'并且这个对reactDOM.render()的调用返回一些东西或者这个调用到remDOM.render()返回一些东西,然后......
但那时候我正在接受我。什么?
这是某种三元吗? return <Component>
{
this.state.loading == true &&
<ActivityIndicator
animating={this.state.loading}
/> ||
<View>
...
</View>
}
</Component>
内的大括号是什么?指定条件的结果在哪里?
答案 0 :(得分:2)
它是javascript的语言功能。使用&&
和||
链接表达式时,它将始终是返回的最后一个值,即被评估。 Python对and
和or
运算符执行相同的操作。其他一些语言,例如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;。这会滥用这一事实:null
,undefined
,true
和false
是有效的节点,实际上不会为条件渲染呈现任何内容。