【问题标题】:Local Storage - React Native本地存储 - React Native
【发布时间】:2020-09-18 18:32:02
【问题描述】:

由于不推荐使用异步存储,还有什么其他方式可以在本地存储变量?

我有一个带有通知中心的 React Native ios 应用程序。
每次用户进入通知中心时,都会生成一个 Cognito 访问令牌。为避免生成过多的令牌,令牌通过异步存储保存并检查其到期时间。
现在我可以使用 React Native 中的其他本地存储吗??

【问题讨论】:

    标签: javascript reactjs react-native local-storage


    【解决方案1】:

    异步存储未被弃用,它已移至您可以安装和使用的单独包

    https://github.com/react-native-community/async-storage/

    或者对于令牌,您可以使用 react-native-keychain 这是一种安全包,您可以在此处查看。 https://github.com/oblador/react-native-keychain

    【讨论】:

    • 没有在react-native上工作,但是他们不使用localStorage有什么特别的原因吗?
    • 据我所知,RN 从一开始就使用异步存储,因为它是为手机设计的,它根据平台处理存储
    • @Guru reactnative.dev/docs/security :根据 React Native 文档,异步存储不适用于令牌存储。正如您提到的,ios 可以使用钥匙串,而 android 可以使用共享首选项。以前没用过!!!请对钥匙串和共享偏好有一些见解???这是将令牌存储在钥匙串中的语法“Keychain.setGenericPassword('token', token)”吗?????
    • 你可以从这个博客 medium.com/react-native-training/… 得到一个想法,你可以在你分享的文档中看到推荐这个库
    【解决方案2】:

    已移至@react-native-community/async-storage

    安装并从lib中导入:

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

    【讨论】:

      【解决方案3】:

      AsyncStorage 已弃用,因此请使用以下软件包

      使用 Yarn 获取库:

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

      完成后,导入标题

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

      用于存储值

      const storeData = async (value) => {
        try {
          await AsyncStorage.setItem('@storage_Key', value)
        } catch (e) {
          // saving error
        }
      }
      

      获取价值

      const getData = async () => {
        try {
          const value = await AsyncStorage.getItem('@storage_Key')
          if(value !== null) {
            // value previously stored
          }
        } catch(e) {
          // error reading value
        }
      }
      

      更多:offical link

      【讨论】:

        【解决方案4】:

        react-native 库中的异步存储已被弃用,他们将其从 react-native 核心拆分为社区库。

        您始终可以通过 library 使用异步存储

        只需按照docs 的安装步骤即可。你可以像这样导入AsyncStorage

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

        【讨论】:

        • 没有在 react-native 上工作,但是他们不使用 localStorage 有什么特别的原因吗?
        • LocalStorage 将数据存储在 Web 浏览器中,因为 react native 允许构建我们不能使用 localStorage 的移动应用程序。异步存储用于将键值在本地全局存储到应用程序
        猜你喜欢
        • 2018-08-11
        • 1970-01-01
        • 1970-01-01
        • 2019-05-03
        • 1970-01-01
        • 2020-05-05
        • 1970-01-01
        • 1970-01-01
        • 2020-09-18
        相关资源
        最近更新 更多