我不理解此JavaScript(JSX)语法中的&;&;
我的理解是&&是&q;和&q;运算符。代码挡路中&&后面的内容如何返回布尔值?
{accounts.length > 0 && (
<View>
{accounts.map((account) => (
<AccountListItem
key={account.mask}
account={account}
selectedAccount={selectedAccount}
setSelectedAccount={setSelectedAccount}
/>
))}
</View>
)}
解决方案
expr1 && expr2works 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,呈现。
相关文章