为什么我的AsyncStorage.getItem()。then在React Native中未定义?

时间:2018-06-22 20:16:34

标签: reactjs 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

1 个答案:

答案 0 :(得分:0)

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

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

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