我可以使用 React Native 的异步存储从本地存储中获取值吗?

Posted

技术标签:

【中文标题】我可以使用 React Native 的异步存储从本地存储中获取值吗?【英文标题】:Can I get values from the local storage using Async Storage from React Native? 【发布时间】:2019-10-17 16:06:59 【问题描述】:

我是 React Native 的新手。有一个用 Objective-C for ios 和 Java for android 编写的本机应用程序。我的任务是使用 React Native 添加另外两个屏幕。一般解决方案是here。

本机代码已经使用本地存储来存储永久数据(例如,有关授权用户的数据)。同时,React Native 使用 Async Storage 来处理永久数据。

【问题讨论】:

【参考方案1】:

您需要使用setItem() 设置数据,使用getItem() 获取数据。 设置数据:

await AsyncStorage.setItem('key', 'data');

获取数据:

await AsyncStorage.getItem('key');

React Native 中的异步存储:https://facebook.github.io/react-native/docs/asyncstorage#docsNav

【讨论】:

我认为他的问题是android端无法访问AsyncStorage。 真正的异步存储不适用于 Android。但这不是问题。我已经有一个用本地代码编写的现成应用程序,它使用本地存储。在异步存储的帮助下,我无法获取应用程序已经使用的本地存储的数据。这就是为什么@DNA.h 似乎是最正确的答案。【参考方案2】:

据我所知,AsyncStorage 在 iOS 端使用 Dictionary,在 android 端使用 SQLite。这两者在 React Native 端都无法访问。你应该在本地端和 React Native 之间写一个桥接器,以便允许在两端之间传递数据,这个 https://github.com/sriraman/react-native-shared-preferences 库就是一个很好的例子,它允许 React Native 访问本地本地共享首选项,反之亦然。

【讨论】:

感谢您的回答,我现在将根据它做出决定。 有没有为ios写过类似的东西?有没有人尝试过使用this library?

以上是关于我可以使用 React Native 的异步存储从本地存储中获取值吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React Native 中使用异步存储存储唯一数据?

React Native 已经有了异步存储。为啥我应该在我的 react native 应用中使用 Redux 和 Redux Thunk?

将原生 iOS 应用的数据迁移到 React Native 应用的异步存储

如何修复 React Native Agora 异步错误

react-native 异步存储不保存,也没有错误

React Native:如何从循环中获取值到钩子 useState