Javascript 任务的任务队列错误:无法读取未定义的属性
我编写的组件具有一些缓存功能。它基于异步存储Javascript 任务的任务队列错误:无法读取未定义的属性,javascript,react-native,es6-promise,Javascript,React Native,Es6 Promise,我编写的组件具有一些缓存功能。它基于异步存储 static getDiscounts(categoryAndPage) { return AsyncStorage.getItem(categoryAndPage); } 所以这是一个承诺。所以在我的职责范围内,我打电话给,然后就这个承诺打电话给 makeRemoteRequest() { this.setState({loading: true}); const page = this.state.page; c
static getDiscounts(categoryAndPage) {
return AsyncStorage.getItem(categoryAndPage);
}
所以这是一个承诺。所以在我的职责范围内,我打电话给,然后就这个承诺打电话给
makeRemoteRequest() {
this.setState({loading: true});
const page = this.state.page;
const catId = this.props.navigation.state.params.categoryId;
var discountCacheKey = `${catId}_${page}`;
var discountsPromise = DiscountsCache.getDiscounts(discountCacheKey);
discountsPromise.then(cachedDiscounts => {
if (cachedDiscounts !== null) {
this.setState({
discounts: page === 1
? cachedDiscounts
: [
...this.state.discounts,
...cachedDiscounts
],
loading: false
})
}
在渲染函数中,我有一个FlatList
组件,它基于this.state.discounters
<FlatList
data={this.state.discounts}
renderItem={({item}) => {
var media = item._embedded["wp:featuredmedia"][0]; <--- here I get error.
...
{
var media=item.\u嵌入式[“wp:featuredmedia”][0];this.state.discounters的值是多少?我想你可能需要在使用它之前解析json。是的,你是对的。我只是忘记了解析它,但这并不重要。我仍然存在此错误。我检查了数据并确认无误。我认为问题在于Promise。我在异常之前也收到此警告可能未处理的Promise拒绝(id:0):TypeError:无法读取未定义的属性“wp:featuredmedia”
添加catch块以处理承诺拒绝。您的错误只是说item.\u embedded未定义。因此您无法访问未定义的属性的wp:featuredmedia属性。请通过console.log(item)发布item的值.好的,我找到了。我只是将emtpy数组添加到缓存中。.这个.state.discounters的值是多少?我想你可能需要在使用它之前解析json。是的,你是对的。我只是忘记了解析它,但没关系。我仍然有这个错误。我检查了数据并确认了。我认为问题在于承诺。我在异常之前收到了这个警告另外可能的未处理承诺拒绝(id:0):TypeError:无法读取未定义的属性“wp:featuredmedia”
添加catch块来处理承诺拒绝。您的错误只是说item.\u embedded未定义。因此您无法访问未定义的承诺拒绝的wp:featuredmedia属性。请通过console.log(item)发布项的值.好的,我找到了。我刚把emtpy数组添加到缓存中。。