Reactjs 空检查反应
我现在有一个空检查的大问题,我不明白为什么 下面是问题所在的代码片段:Reactjs 空检查反应,reactjs,react-native,Reactjs,React Native,我现在有一个空检查的大问题,我不明白为什么 下面是问题所在的代码片段: getUser(data).then(result => { console.log(result); console.log(result == null); if (result == null) { console.log("IS NULL"); } else { console.log(NULL); } } 以下是供参考的getUser:
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
但是当快照为空时,输出仍然是:
console.log(result == null); // false
我尝试了很多东西,比如Object.propotype.hasOwnProperty.call(结果,“email”)
,但都没有成功
问候,,
托马斯通过打电话设法做到了这一点
if(result.val()&&result.val().email)
我想,因为快照是firebase的一个特殊对象,所以我无法使用hasOwnProperty(可能是因为继承)来解决问题