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

@react-native-community/async-storage ^1.6.1调用方法时报错求助

解决@react-native-community/async-storage调用时报错TypeError的问题

嘿,我一眼就瞅出问题在哪了——你用错了这个社区版AsyncStorage的导入方式!在你使用的@react-native-community/async-storage@1.6.1版本里,它是默认导出,不是你现在用的命名导出。你写的import { AsyncStorage } from '@react-native-community/async-storage'会让你拿到的AsyncStorage变成undefined,调用它的方法自然就会抛出那个类型错误了。

直接解决办法

把你的导入语句改成默认导入就行:

import AsyncStorage from '@react-native-community/async-storage';

改完之后,你原来的AsyncStorage.setItem('locale', locale)和AsyncStorage.getItem('user')这些调用代码完全不用动,就能正常工作了。

为啥从'react-native'导入能行?

因为原生React Native里的旧版AsyncStorage是命名导出,所以你用import { AsyncStorage } from 'react-native'能拿到正确的对象,但它确实已经被官方标记为弃用,社区版才是现在推荐的替代方案。

要是改了导入还是不行?试试这两步

  • 确认依赖链接正常:如果你用的是React Native 0.60以下版本,安装依赖后需要手动运行react-native link @react-native-community/async-storage;0.60+版本是自动链接的,但保险起见可以重启一下metro bundler和你的模拟器/真机。
  • 清理metro缓存:运行npx react-native start --reset-cache,有时候缓存会导致模块导出异常,清完缓存再重新跑项目试试。

这样调整后,你就能安心用社区版AsyncStorage,再也不会看到弃用警告,也不会有那个烦人的类型错误啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:27:25