我正在制作一个应用程序,其中包含一些在安装应用程序时应保留的数据。用户以后可以更改此数据。如何仅在安装应用时一次而不是每次打开屏幕时存储数据?
基本上,这些都是应用程序的所有设置,带有默认值(用户首选项),以后可以更改。
我尝试了以下操作:
_retrieveData = async() => {
try {
await AsyncStorage.multiGet('r1','r2','r3','r4','r5','fix','box').then(data =>{
Utils.r1 = data[0][1];
Utils.r2 = data[1][1];
Utils.r3 = data[2][1];
Utils.r4 = data[3][1];
Utils.r5 = data[4][1];
Utils.fix = data[5][1];
Utils.modlShow = data[6][1];
alert('data got successfully');
if(!Utils.r1 || !Utils.r2 || !Utils.r3 || !Utils.r4 || !Utils.r5 || !Utils.fix || !Utils.modlShow) {
AsyncStorage.multiSet(['r1','1'],['r2','2'],['r3','3'],['r4','4'],
['r5','5'],['fix','3'],['box','true']);
}
})
} catch {
alert('Error in retrieving data');
}
}
我遇到以下错误:
未定义不是函数(正在评估 'requestKeys.map(function(key){return [key,map [key]];})')
如何清除错误并获取值?预先感谢。
答案 0 :(得分:0)
_retrieveData = async() => {
try {
const data = await AsyncStorage.multiGet('r1','r2','r3','r4','r5','fix','box')
const Utils = {}
Utils['r1'] = data[0][1];
Utils['r2'] = data[1][1];
Utils['r3'] = data[2][1];
Utils['r4'] = data[3][1];
Utils['r5'] = data[4][1];
Utils['fix'] = data[5][1];
Utils['modlShow']= data[6][1];
alert('data got successfully');
if(!Utils.r1 || !Utils.r2 || !Utils.r3 || !Utils.r4 || !Utils.r5 || !Utils.fix || !Utils.modlShow) {
return AsyncStorage.multiSet(['r1','1'],['r2','2'],['r3','3'],['r4','4'],
['r5','5'],['fix','3'],['box','true']);
}
} catch {
alert('Error in retrieving data');
}
}