有两种方法可以做到这一点。
- 首先导入
AsyncStorage
正确。这将删除警告并解决问题。
- 其次,抑制警告。这只会隐藏警告,但一旦出现问题就会出现
AsyncStorage
已被删除react-native
. I 不会这样做是真正解决问题的第一种方法。
Note如果您使用的依赖项使用 AsyncStorage 并且仍然以旧方式从 React-Native 导入它,您可能会收到此警告。安装 AsyncStorage 不会修复该错误。您需要查看依赖项的依赖项,找出是哪一个造成的。
这意味着实际上要检查每个依赖项的代码以查看它们是否使用AsyncStorage
。搜索节点模块或依赖项的 Github 通常就足够了,但可能需要一些时间才能找到它。
一旦找到导致该问题的原因,您应该提出一个问题或创建一个 PR,并修复依赖项的存储库。此时,在问题得到解决之前,您所能做的就是抑制该警告。
安装异步存储
- 使用您最喜欢的包管理器安装它
npm
or yarn
- 链接依赖项
- 使用依赖项
安装:选择您常用的方式
npm i @react-native-community/async-storage
or
yarn add @react-native-community/async-storage
链接依赖项(如果您使用 0.60+,则可能不必这样做,因为它有自动链接 https://github.com/react-native-community/cli/blob/master/docs/autolinking.md)
react-native link @react-native-community/async-storage
然后你像这样导入它,并像以前一样使用它。
import AsyncStorage from '@react-native-community/async-storage';
您可以通过查看了解更多相关信息here https://github.com/react-native-community/react-native-async-storage/blob/master/README.md
抑制警告。
以前你会使用YellowBox
为了抑制警告,现在已更改为LogBox https://reactnative.dev/docs/debugging#logbox。该过程类似于YellowBox
import { LogBox } from 'react-native';
然后你可以添加以下内容
LogBox.ignoreLogs(['Warning: Async Storage has been extracted from react-native core']);
我通常在App.js
因此很容易跟踪我隐藏了哪些内容。
它不会从控制台中删除警告,但会删除与错误关联的任何 LogBox 警告。但是,这次我不会这样做,因为有一个正确的修复方法,那就是正确安装依赖项。
世博用户
目前世博会仍进口AsyncStorage
from react-native
,因此您可能仍然会遇到警告。我相信出于向后兼容性的原因它仍然以这种方式导入。快速搜索 Expo 存储库会发现有很多使用它的实例,如您所见。在这种情况下,您唯一的选择是抑制警告。根据世博会特色要求,目前正在进行中 https://expo.canny.io/feature-requests/p/continued-support-for-asyncstorage,所以希望它很快就会被添加到 Expo 中。
展会动态
截至 2020 年 6 月:@react-native-community/async-storage
v1.11.0 可以安装在 Expo 托管应用程序中。希望这会导致随着依赖项转换为导入异步存储的新方式而出现更少的警告。
回购协议更新
现在有一个新的异步存储存储库,可以在此处找到
https://github.com/react-native-async-storage/async-storage https://github.com/react-native-async-storage/async-storage
查看安装和链接说明文档
https://react-native-async-storage.github.io/async-storage/docs/install/ https://react-native-async-storage.github.io/async-storage/docs/install/