首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NativeModule: AsyncStorage为空,带有@RNC/AsyncStorage

NativeModule: AsyncStorage为空,带有@RNC/AsyncStorage
EN

Stack Overflow用户
提问于 2019-05-08 03:04:04
回答 11查看 28K关注 0票数 26

我正在做一个与世博会一起创建的React Native项目。我一直在使用常规的旧AsyncStorage,从react-native导入,一切都很好。

在查找如何模拟AsyncStorage进行测试时,我发现react-native-community/react-native-async-storage有它自己的模拟内置。

所以我用yarn add安装了社区插件,并去掉了我所有的导入语句。

当我运行我的应用程序时,我收到了一个错误(我自己重新输入了这个错误,请原谅一些省略):

代码语言:javascript
复制
[@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.

To fix this issue try these steps:

-Run `react-native link @react-native-community/async-storage` in the project root.
-Rebuild and restart the app
-Run the packager with `--clearCache` flag.
-If you are using CocoaPods on iOS...
-If this happens while testing with Jest...

所以我试着运行react-native link @react-native-community/async-storage,但一直收到这个错误:

代码语言:javascript
复制
Something went wrong while linking. Error: Cannot read property 'pbxprojPath' of null

一些研究表明,世博会的应用程序不能(也不需要)链接。

我尝试了npm start --clearCache,但没有用。

另外,我的项目中没有ios (或android)文件夹。这对我来说总是有点困惑,因为我看到它到处都被引用了。我通过Expo应用程序在模拟器/模拟器(和设备)中运行我的应用程序。有一次我试着弹出,但出现了问题。所以,我没有ios文件夹。

(我将继续使用来自react-native的旧的原生AsyncStorage并自己创建一个模拟,但是我想知道如何解决这个问题,以及将来可能出现的类似问题。)

EN

回答 11

Stack Overflow用户

发布于 2019-08-27 21:30:36

这个错误可以通过linking模块纠正,但是如果你的应用程序是Expo管理的(通过expo-cli创建),linking就不能工作。

假设您的应用程序是世博会托管的,而不是使用Facebook RN文档中的AsyncStorage

代码语言:javascript
复制
import AsyncStorage from '@react-native-community/async-storage';

执行以下操作:

代码语言:javascript
复制
import { AsyncStorage } from 'react-native';

请在此处查看文档:AsyncStorage Expo

票数 31
EN

Stack Overflow用户

发布于 2021-05-01 02:12:35

对我来说,解决这个问题的方法是首先安装以下库:

代码语言:javascript
复制
expo install @react-native-async-storage/async-storage

然后,按如下方式更新您的导入:

代码语言:javascript
复制
import AsyncStorage from '@react-native-async-storage/async-storage'

注意:修复此修复后,您可能需要重新启动世博会。

票数 5
EN

Stack Overflow用户

发布于 2019-05-11 00:34:46

我刚刚遇到了一个类似的问题,发现Krizzu在github上提供的答案非常有帮助。他是这样说的:“如果你使用的是expo,你就不能添加这个包。使用expo给你的任何东西(忽略关于弃用的警告)。”“你不能在expo中添加额外的本地模块,除非你弹出你的项目。”

你可以在https://github.com/react-native-community/react-native-async-storage/issues/89https://github.com/react-native-community/react-native-async-storage/issues/72上阅读更多关于这个问题的帖子。我希望这能帮到你。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56029007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档