代码如下:
if(typeof state.getId().stateId !== "undefined") {
console.log("Not undefined");
} else {
console.log("Undefined");
}
我不断收到此错误: TypeError:无法读取stateId属性
我在做什么错?
问题是state.getId()本身未定义;并因此获得state.getId()的stateId属性成为问题。这与另一个问题不同,因为a)尚不立即了解.getId()。stateId是undefined的属性。
答案 0 :(得分:0)
尝试
JobInfo jobInfo = new JobInfo.Builder(1, componentName)
.setPersisted(true)
.setBackoffCriteria(6000, JobInfo.BACKOFF_POLICY_LINEAR)
.setMinimumLatency(1000 * 60)
.build();
如果未定义状态或从调用getId返回的值,则将出现错误。短路或测试会抓住它,并阻止您尝试访问未定义的属性,这是导致您出错的原因。
答案 1 :(得分:0)
首先检查state.getId()
是否为truthy,然后检查其财产
if (state.getId() && state.getId().stateId !== "undefined") {
console.log("Not undefined");
} else {
console.log("Undefined");
}
答案 2 :(得分:0)
检查是否存在state
,然后检查state.getId
是一个函数:
if (typeof state == "object" &&
typeof state.getId == "function" ) {
var id = state.getId();
console.log("stateId=",id.stateId);
} else {
console.log("Undefined");
}
有关更多信息,请参见