有更优雅的方法吗?
if(response && response.body && response.body.data) {
const users = response.body.data
dispatch(UserActions.usersReceived(users))
}
含义response && response.body && response.body.data
?
答案 0 :(得分:0)
Php有一个名为isset()的东西,但是Js似乎没有那个功能。这是我最近在堆栈溢出时发现的一个我最喜欢的。
user = {
loc: {
lat: 50,
long: 9
}
}
user2 = null;
has = function(obj, key) {
return key.split(".").every(function(x) {
if(typeof obj != "object" || obj === null || !( x in obj)) {
return false;
}
obj = obj[x];
return true;
});
}
console.log(has(user, 'loc.lat')); //true
console.log(has(user, 'loc')); //true
console.log(has(user, 'loc.lat.ll')); // false
console.log(has(user2, 'd')); //false
答案 1 :(得分:0)
如果在调用其属性之前不检查对象是否存在,则可以获得异常并执行停止。因此,有人会建议尝试捕获。
但是,根据我的经验,最好以这种方式检查,明确,易于阅读和维护代码总是很好。
答案 2 :(得分:0)
没有。但如果它是REST API (看起来像是这样)我会建议使用库进行验证。当你必须执行嵌套验证时,joi是最好的。