检查 React Native 中的数组是否为空

IT技术 javascript reactjs react-native
2021-05-23 20:24:20

如何使用 IF 语句检查数组是否为空?

我有这个空的数组“accessos”

...
constructor(props){
    super(props);
    this.state = {
      acessos:[]
    };
  }
...

然后我试图检查“acessos”是否为空,如果是,我将一些数据放入其中。我试过 null 但没有结果,那么如何检查是否为空?

...
if(this.state.acessos === null){
      this.state.acessos.push({'uuid': beacons.uuid, 'date':date});
      this.setState({acessos: this.state.acessos});
} else {
...
4个回答

我同意朱利安。此外,您不必将其与 null 进行比较。你可以这样写

this.state.acessos && this.state.acessos.length > 0

只需检查您的数组是否存在并具有长度:

if (this.state.products && this.state.products.length) {
     //your code here
}

无需检查this.state.products.length > 0
0无论如何都是假的,一个小的性能改进。

从 ECMAScript 5.1 开始,您甚至不需要检查长度您可以简单地编写如下相同的条件。

this.state.acessos && this.state.acessos.length

默认情况下this.state.acessos.length检查长度是否未定义或为空或零。

如果在 React JSX 中检查数组长度作为条件渲染的一部分,请记住,如果条件在长度检查时为假,它将渲染 0,如下例所示:

{myArray && myArray.length && (
      <div className="myclass">
        Hello
      </div>
    )}

大多数时候这不是我们想要的。相反,您可以按如下方式修改 JSX:

{myArray && myArray.length? (
      <div className="myclass">
        Hello
      </div>
    ):""}