如何删除“警告:异步存储已从react-native核心中提取出来...”?

时间:2019-03-23 06:29:28

标签: react-native

我已经尝试了此屏幕截图中的建议

Screenshot-20190323-081232.png

使用此行代码 我要从import AsyncStorage from '../../../node_modules/@react-native-community/async-storage';导入async-storage的文件中的react-native 但此路径无法解析,即async-storage在此目录中不存在。我还尝试通过运行async-storage来安装yarn add async-storage(即使已经安装),但是在前面提到的目录中什么都没有出现

2 个答案:

答案 0 :(得分:15)

有两种方法可以执行此操作。

  • 首先正确导入AsyncStorage。这将删除警告并解决问题。
  • 第二,取消警告。从AsyncStorage中删除react-native后,这只会隐藏警告,但会导致问题。我不会这样做,因为这实际上是解决问题的第一种方法。

安装AsyncStorage

  1. 使用您喜欢的软件包管理器npmyarn
  2. 安装它
  3. 链接依赖项
  4. 使用依赖项

安装:选择通常使用的方法

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

yarn add @react-native-community/async-storage

链接依赖项

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

然后像这样导入它,并像以前一样使用它。

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

您可以通过查看here

了解更多信息

取消警告。

您可以使用以下

来禁止YellowBox警告
import {YellowBox} from 'react-native';

然后在您的render方法中,我通常在App.js中执行此操作,因此很容易跟踪隐藏了哪些对象。

render() {
  YellowBox.ignoreWarnings(['Warning: Async Storage has been extracted from react-native core']);  // <- insert the warning text here you wish to hide. 
  return (
    //cool ui stuff
  );
}

它不会从您的控制台中删除警告,但是会删除与该错误相关的所有YellowBox警告。但是,我不会在这种情况下这样做,因为有一个适当的修复方法是正确安装依赖项。

答案 1 :(得分:1)

对我来说,这个问题与@firebase有关。

<块引用>

node_modules/@firebase/app/dist/index.rn.cjs.js

按照 Andrew 的上述步骤,在 vscode 中我能够删除警告。

  1. 复制“AsyncStorage”
  2. cmd + shift + f - 然后将“AsyncStorage”粘贴到搜索中
  3. 点击搜索“...”下的三个点
  4. 右键单击 node_modules 文件夹选择“复制路径”
  5. 在 vscode 搜索中添加“要包含的文件”的路径
  6. 找到一个原始(不正确)AsyncStorage 的 import 或 require 语句示例,复制该语句。将其粘贴到搜索中,替换第一个搜索查询。

一旦找到所有导入,为新版本正确安装 AsyncStorage(如上所述),也添加到 pods,然后通过并替换所有

require('react-native').AsyncStorage; => require('@react-native-community/async-storage').AsyncStorage;

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

我用 xcode 做了一个干净的构建,然后一切顺利,没有更多警告:-)