React Native Debbuger:异步存储

时间:2019-06-11 10:52:44

标签: android react-native

我正在Android设备上尝试我的应用,当我启动该应用时,dubbuger会给我1错误和1警告。

错误是:

  

异步存储已从react-native核心中提取,并将在以后的版本中删除。现在可以从“ @ react-native-community / async-storage”而非“ react-native”安装和导入它。参见https://github.com/react-native-community/react-native-async-storage

警告

  

需要周期:   node_modules / pouchdb-find / node_modules / pouchdb-utils / lib / index-browser.js   -> node_modules / pouchdb-find / node_modules / pouchdb-utils / lib / index-browser.js

     

允许使用要求周期,但可能导致未初始化的值。   考虑重构以消除循环的需要。

关于错误,我已经按照错误提示进行了操作,

npm i --save @react-native-community/async-storage;

在我的根项目文件夹中。然后

react-native link @react-native-community/async-storage

最后我在项目中导入了import AsyncStorage from '@react-native-community/async-storage';

但是我总是有同样的错误。 我如何解决您的错误和警告? 谢谢!

3 个答案:

答案 0 :(得分:1)

第一步正确,您正在安装和链接项目 项目的依赖项。

# Install
$ yarn add @react-native-community/async-storage

# Link
$ react-native link @react-native-community/async-storage

第二步似乎也是正确的。

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

注意:有时错误消息来自您存储数据的方式

您能帮我写这部分吗,我会检查一下这个问题?

要删除黄色警告,您可以:

To disable the yellow box place console.disableYellowBox = true;
anywhere in your application. Typically in the root file so it will apply to both iOS and Android.
console.ignoredYellowBox = ['Warning: Each', 'Warning: Failed'];

你可以试试吗?

import {YellowBox} from 'react-native';
YellowBox.ignoreWarnings(['Warning: Each', 'Warning: Failed']);

答案 1 :(得分:1)

AsyncStorage曾经是react-native库的一部分,但现在已弃用。该模块已从标准库中删除,现在是名为@react-native-community/async-storage的单独库的一部分。

您没有提及您是否正在使用Expo,也没有提及您正在使用哪个版本的React Native,但是无论如何,这是它的文档: https://github.com/react-native-community/async-storage

如果您使用的是RN 60+,则需要撤消该链接,因为RN 60+现在使用自动链接。因此,您可以按照上述文档运行:react-native unlink @react-native-community/async-storage

如果您使用react-native-cli而不是Expo,则可能还需要执行pod deintegratepod install来添加

- "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"

到您的Podfile.lock文件。

答案 2 :(得分:0)

第一件事:这些消息是警告,在这种情况下可以忽略不计

console.disableYellowBox = true;

是你的朋友。

第二:您可能做事正确,但您不是唯一使用AsyncStorages的人。可能node_modules中的某些软件包也在使用AsyngStorage,它们是您发出警告的来源。唯一的解决方案是获取更新的软件包和/或自己编辑它们并删除不正确的导入。