我编写了一些缓存功能的组件。它基于异步存储。
static getDiscounts(categoryAndPage) {
return AsyncStorage.getItem(categoryAndPage);
}
所以它返回了一个承诺。所以在我的功能中,我就此承诺致电then
。
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.discounts
<FlatList
data={this.state.discounts}
renderItem={({item}) => {
var media = item._embedded["wp:featuredmedia"][0]; <--- here I get error.
...
以前没有缓存和承诺一切都很好。
错误:
TaskQueue:任务错误:无法读取未定义的属性'wp:featuredmedia'