我想创建一个单例,该单例将收集应用程序周围所需的所有数据。也许这种方法是错误的,那么请纠正我。
现在我的Singleton类具有简单的代码:
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()
很遗憾,如果我设置了某些内容,以后将无法收到它。在这种情况下,我很乐意为您提供帮助
答案 0 :(得分:0)
如果您正在寻找在各个组件之间或通过App共享数据的方法,请尝试redux https://blog.cloudboost.io/getting-started-with-react-native-and-redux-6cd4addeb29
答案 1 :(得分:0)
我认为您想在AsyncStorage
上存储一些参数,但是您不想每次都导入并将其用于将参数保存在手机存储中。对于本机应用程序,常见的方法是使用redux-persist
库。通过使用该库,您可以保存Redux存储中的每个参数。您可以在https://github.com/rt2zz/redux-persist上了解更多信息。您可以将所需的每个参数放在redux-persist
whitelist
中,并将其保存在手机存储中。
我希望它能解决您的问题。如果这是您想要的解决方案,请给我投票:)