我已经尝试过此屏幕截图中的建议
通过import AsyncStorage from '../../../node_modules/@react-native-community/async-storage';
在我async-storage
要从中导入的文件中使用此行代码
,react-native
但此路径尚未解析,即async-storage
该目录中不存在。我还尝试async-storage
通过运行进行安装(即使已经安装了)yarn add async-storage
,但是在前面提到的目录中没有任何显示
And*_*rew 30
有两种方法可以执行此操作。
AsyncStorage
正确导入。这将删除警告并解决问题。AsyncStorage
从中删除警告只会掩盖警告,但是会引起您的问题react-native
。我不会这样做,因为第一种实际解决问题的方法。请注意,如果您使用的是使用AsyncStorage的依赖项,并且仍以旧方法从react-native导入它,则会收到此警告。安装AsyncStorage无法解决该错误。您将需要查看依赖项的依赖项,以找出导致它的原因。
这意味着实际上要遍历每个依赖项的代码以查看它们是否使用
AsyncStorage
。通常,在节点模块或依赖项的Github上进行搜索就足够了,但是可能需要一些时间才能找到它。一旦找到导致问题的原因,就应该打开一个问题或创建一个PR,并对该依赖的仓库进行修复。在这一点上,抑制警告是您可以做的,直到它解决。
npm
或yarn
安装:选择通常使用的方法
npm i @react-native-community/async-storage
Run Code Online (Sandbox Code Playgroud)
要么
yarn add @react-native-community/async-storage
Run Code Online (Sandbox Code Playgroud)
链接依赖项(如果您使用的是0.60+,则可能不必这样做,因为它具有自动链接功能)
react-native link @react-native-community/async-storage
Run Code Online (Sandbox Code Playgroud)
然后像这样导入它,并像以前一样使用它。
import AsyncStorage from '@react-native-community/async-storage';
Run Code Online (Sandbox Code Playgroud)
您可以在这里查看更多信息
您可以使用以下命令来阻止YellowBox警告
import {YellowBox} from 'react-native';
Run Code Online (Sandbox Code Playgroud)
然后您可以添加以下内容
YellowBox.ignoreWarnings(['Warning: Async Storage has been extracted from react-native core']);
Run Code Online (Sandbox Code Playgroud)
我通常会这样做,App.js
因此很容易跟踪我隐藏了哪些人。
它不会从您的控制台中删除该警告,但会删除与该错误相关的所有YellowBox警告。但是,我不会在这种情况下执行此操作,因为有一个正确的修复程序是正确安装依赖项。
Ess*_*sam 10
如果问题的根源是 Firebase,则从版本 9.9.2 开始,一个可行的解决方案是将 Firebase 用于在正确导入身份验证会话后将其存储为 AsyncStorage 的默认持久层设置为:
expo install @react-native-async-storage/async-storage
然后添加到 firebase.js
import AsyncStorage from '@react-native-async-storage/async-storage';
import { initializeAuth, getReactNativePersistence} from 'firebase/auth/react-native';
Run Code Online (Sandbox Code Playgroud)
然后通过导出 { auth }
const auth = initializeAuth(app, {
persistence: getReactNativePersistence(AsyncStorage)
});
export { auth };
Run Code Online (Sandbox Code Playgroud)
与 getAuth() 不同,initializeAuth() 使我们能够控制持久层。
参考。
这似乎是 Firebase 和 React Native 上持续存在的问题。
查看此线程:
https://github.com/firebase/firebase-js-sdk/issues/1847
归档时间: |
|
查看次数: |
8236 次 |
最近记录: |