reactjs - 为什么我的 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
}
);
});
这是我制作的视频。抱歉,您可以在后台听到我的同事的声音,因此您必须将其静音。
解决方案
用于await
等待async
操作完成,如下所示:
async setData() {
var resultCache= await AsyncStorage.getItem(STORAGE_KEY_PRODUCT_SEARCH_CACHE);
}
您可以使用此代码进行进一步的功能性工作。
推荐阅读
- c++ - CComboBoxEx 调试断言失败:afxcmn2.inl 第 334 行
- reactjs - 如何在类组件中使用 Context API
- javascript - 有没有办法像 HTMLElement 一样扩展 SVGElement
- c++ - 标准 type_traits 库会产生一些使用 decltype 的类型别名的意外行为
- meteor - autoform meteor 中的选项不需要更大的数组
- c - 除了 GetNetworkParams 之外,还有其他功能可以帮助我从我的机器上找到 DNS 服务器的 IP 地址吗?
- reactjs - 如何使用 MERN 和 FormData 将视频上传到云端?
- python - 使用 aiohttp 在 Python 中从内存中上传 multipart/form-data
- python - 嵌套 Python for 循环仅适用于列表中的最后一项
- javascript - 为什么我的应用程序似乎正在侦听端口 3501,但我的浏览器无法连接到该端口上的 localhost?