React Native Expo显示异步存储警告

q5iwbnjs  于 2023-01-14  发布在  React
关注(0)|答案(3)|浏览(159)

我正在使用React Native expo,它显示

[警告:已从react-native核心中提取异步存储,并将在未来版本中删除。现在可以从“@react-native-community/async-storage”而不是“react-native”安装和导入异步存储。请参阅https://github.com/react-native-community/react-native-async-storage]。

我读了这个link,我明白这是由于一些依赖项使用旧的AsyncStorage,而不是来自社区的新的。但我几乎没有找到任何适合Expo用户的解决方案。有没有适合Expo的解决方案?或者如果我必须使用旧的AsyncStorage手动更改依赖项,我该怎么做?因为我是React Native的新手,不知道该怎么做。

daolsyd0

daolsyd01#

在Expo中,您应始终链接Expo包含在应用程序中的库。因此,如此处文档中所述https://docs.expo.dev/versions/latest/sdk/async-storage/
expo install @react-native-async-storage/async-storage
是正确的导入。如果您使用的是旧版Expo-SDK,则可能会有所不同,否则您应该调整您的导入。

9avjhtql

9avjhtql2#

现在expo已经迁移到使用community version,正如你所看到的here
但是如果你收到这个警告,你肯定有一些或更多的依赖项仍然使用react-native-core版本,如果是这样,请参考How to resolve using AsyncStorage (deprecated) warning? Using the community (correct) library的第一个答案:
如果是这种情况,则该答案中所建议的最佳
最好的做法是派生repo并修复AsyncStorage的所有示例以使用正确的版本,或者打开一个问题。

2vuwiymt

2vuwiymt3#

发生这个错误是因为firebase从react native core导入AsyncStorage而不是新库@react-native-async-storage/async-storage。我认为firebase还没有更新默认导入,所以你必须自己做。我修复它的方法是;

  • 安装React Native异步存储:npm i @React Native异步存储/异步存储
  • 进入从react原生内核导入AsyncStorage的firebase index.js文件:其地址为:“节点模块/@firebase/身份验证/分发/rn”。
  • 创建一个从“节点模块/@React Native异步存储/异步存储”导入AsycnStorage的变量:var AsyncStorage =需要('../../../../@React Native异步存储/异步存储');
  • 将react本机核心中此文件中AsyncStorage的所有使用替换为新变量,即将“ReactNative__namespace.AsyncStorage”替换为“AsycnStorage”,

相关问题