我从存储中检索数据时收到此错误。是什么原因?
可能的未处理的承诺拒绝(id: 3
):
TypeError:无法读取null的属性“草稿”
@action async masterProperty(obj) {
let observations = await AsyncStorage.getItem(AuthStore.token); //active icon receiving keyed observations
let objObservations = JSON.parse(observations); //json observations js translating to object
let keyNames = Object.keys(obj);
let inValid = false;
for (let item of objObservations.drafts) {
if (item.ui == this.getActiveUID) {
inValid = true;
break;
}
}
if (inValid) {
this.updateProp(obj);
} else {
this.newProperty(obj);
}
}
答案 0 :(得分:0)
查看错误:Cannot read property "drafts" of null
。
您唯一使用something.drafts的地方是在for
循环中:
for (let item of objObservations.drafts)
。
这意味着出于某种原因objObservations为null,并且可以通过解析从存储中获取的JSON来获取它。
现在,当Json.parse()
返回null时-意味着它传递了“ null” JSON-意味着从存储中检索数据是错误的。
尝试检查以下内容:
检查存储是否返回了正确的JSON对象。
请检查您是否确实在存储中存储了信息-因为返回null可能表明您没有该信息。
检查AsyncStorage实际上使用了Promise,而不是使用用于异步的回调方法-也许“ await”失败,因为它不使用Promise,并且没有返回值,并且observations
保持为空。 p>