空检查React

时间:2019-03-07 15:50:14

标签: reactjs react-native

我目前在null检查方面遇到了一个大问题,我不明白为什么...

问题所在的代码段:

  getUser(data).then(result => {
    console.log(result);
    console.log(result == null);
    if (result == null) {
      console.log("IS NULL");
    } else {
      console.log(NULL);
    }
  }

这里是getUser供参考:

function getUser(uid) {
  return firebase
    .database()
    .ref(`/users/${uid}`)
    .once("value")
    .then(snapshot => {
      console.log(snapshot);
      if (snapshot === null) return null;
       return snapshot;
    });
}

snapshot可以是和这样的对象:

[16:34:18] Object {
[16:34:18]   "email": "user@example.com",
[16:34:18]   "walletAmount": 0,
[16:34:18] }

null

但是我的状况未如预期那样正常工作。

如果snapshot等于前面提到的对象,我将得到以下输出:

console.log(result == null); // false

但是当snapshot为空时,输出仍然是:

console.log(result == null); // false

我尝试了很多类似Object.propotype.hasOwnProperty.call(result, "email")的事情,但都没有成功...

关于, 托马斯

1 个答案:

答案 0 :(得分:1)

通过致电做到了

if (result.val() && result.val().email)

我认为因为snapshot是Firebase中的一个特殊对象,我无法通过使用hasOwnProperty(也许是由于继承)解决问题的任何一种方式!