React Native 中的 AsyncStorage 单例

AsyncStorage singleton in React Native

我想制作一个单例来收集应用程序周围我需要的所有数据。可能这个方法不对,请大家指正

现在我的单例 class 有简单的代码:

import { AsyncStorage } from 'react-native'

export default class DataManager {
    static myInstance = null

    stringsArray = null

    static instance() {
        if (DataManager.myInstance == null) {
            DataManager.myInstance = new DataManager();
        }

        return this.myInstance;
    }

    async getStringsArray() {
      if (this.stringsArray == null) {
        let strings = await AsyncStorage.getItem('stringsArray')
        this.stringsArray = JSON.parse(strings)
      }
        return this.stringsArray
    }

    async setStringsArray(strings) {
        this.stringsArray = strings;
        await AsyncStorage.setItem('stringsArray', JSON.stringify(strings))
    }
}

这就是我想要调用 getter 和 setter 的方式:

DataManager.instance().setStringsArray(["abc", "def"])

let stringsArray = DataManager.instance().getStringsArray()

不幸的是,如果我设置了一些东西,我以后就收不到了。在这种情况下,我很乐意提供一些帮助

如果您正在寻找在各种组件之间或通过应用程序共享数据的方法,请尝试使用 redux https://blog.cloudboost.io/getting-started-with-react-native-and-redux-6cd4addeb29

我认为您想在 AsyncStorage 上存储一些参数,但您不想每次都导入它并使用它来将参数保存在 phone 存储上。 react-native 应用程序的常用方法是使用 redux-persist 库。通过使用此库,您可以保存 redux 存储中的每个参数。您可以在此处阅读更多相关信息 https://github.com/rt2zz/redux-persist。你可以把你想要的每个参数放在 redux-persist whitelist 中,它会保存在你的 phone 存储中。

希望能解决您的问题。如果这是您想要的解决方案,请给我投票:)