我不理解此JavaScript(JSX)语法中的&&

2022-03-03 reactjs 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。

expr1accounts.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,呈现。

相关文章