You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native AsyncStorage存储数据报错问题求助

问题解决:React Native AsyncStorage 获取数据返回Promise的问题

问题原因

AsyncStorage.setItem() 和 AsyncStorage.getItem() 都是异步操作,它们返回的是Promise对象,而非直接的存储数据。你代码里直接把getItem的返回值赋值给abc,打印出来自然是Promise实例,不是你期望的JSON数据。

另外你的代码里存在冗余操作:ars = options后转成字符串再解析成对象完全没必要,直接使用options即可。

修正后的代码

onPress={async () => {
  const press = item.id;
  // 直接使用options,无需重复序列化反序列化
  for (const item of options) {
    if (item.id === press) {
      const productDataStr = JSON.stringify(item);
      // 异步存储需用await等待完成
      await AsyncStorage.setItem('ProductData', productDataStr);
      // 异步获取也需用await拿到实际数据
      const abc = await AsyncStorage.getItem('ProductData');
      // 若需要使用对象格式,解析字符串
      const productData = JSON.parse(abc);
      
      console.warn(productDataStr);
      console.warn(productData);
    }
  }
}}

补充说明

  • 用async/await处理异步操作,确保存储完成后再获取数据,保证数据一致性
  • 变量声明尽量用const/let替代var,避免变量提升导致的作用域问题
  • 后续使用存储的对象数据时,需要用JSON.parse()把字符串转回对象格式

内容的提问来源于stack exchange,提问作者aysekaplan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:40:41