首页 > 解决方案 > 为什么我的 AsyncStorage.getItem().then 在 React Native 中未定义?

问题描述

AsyncStorage用来获取信息。我以前存储过,但出于某种奇怪的原因,Cannot read property 'then' of undefined即使我在下面的函数中使用了完全相同的 AsyncStorage 函数,它也可以正常工作。有谁知道为什么这在这里不起作用?

AsyncStorage.getItem(STORAGE_KEY_PRODUCT_SEARCH_CACHE).then((results) => {
    const searchCache = JSON.parse(results);
    let containedMatches = [];

    if (searchCache) {
        containedMatches = searchCache.filter((searchCacheItem, i) => {
            return searchCacheItem.includes(searchTerm);
        });    
    }

    dispatch({
            type: types.HANDLE_LOAD_PRODUCTS_SUCCESS,
            containedMatches
        }
    );
});

这是我制作的视频。抱歉,您可以在后台听到我的同事的声音,因此您必须将其静音。

https://youtu.be/qwhywbD74l8

标签: reactjsreact-native

解决方案


用于await等待async操作完成,如下所示:

async setData() {
    var resultCache= await AsyncStorage.getItem(STORAGE_KEY_PRODUCT_SEARCH_CACHE);
}

您可以使用此代码进行进一步的功能性工作。


推荐阅读