我不理解此JavaScript(JSX)语法中的&;&;
我的理解是&&
是&q;和&q;运算符。代码挡路中&&
后面的内容如何返回布尔值?
{accounts.length > 0 && (
<View>
{accounts.map((account) => (
<AccountListItem
key={account.mask}
account={account}
selectedAccount={selectedAccount}
setSelectedAccount={setSelectedAccount}
/>
))}
</View>
)}
解决方案
expr1 && expr2
works like this:
如果expr1可以转换为
true
,则返回expr2;否则,返回expr1。
expr1
为accounts.length > 0
。
- 如果为
false
,则无法转换为true
,因此整个表达式的计算结果为false
。 - 否则为
true
,因此整个表达式的计算结果为expr2
,在本例中为View
组件。
在Reaction中,false
不呈现任何内容。您可以用以下最小示例验证这一点:
const Test = () => <>before{false}after</>
ReactDOM.render(<Test />) // renders as "beforeafter"
换句话说,在我们的示例中,如果accounts.length
为0,则返回false
,不呈现任何内容;否则,返回View
,呈现。
相关文章