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数组添加到缓存中。。