Javascript 在异步存储获取+;国家?
我正在尝试为我的react本机应用程序构建设置屏幕。我正在使用异步存储来保存数据。以下是我目前的设置方式 状态最初具有默认值。任何时候更新一个设置组件,它都会将数据放入异步存储,并更新状态以更新UI,并显示每个设置的正确值 问题是在重新加载应用程序时更新状态,因此所有设置组件都会反映为用户离开时的状态。每次我重新编译时,设置都会返回到初始默认值 以下是我试图通过以下方式实现这一目标的代码:Javascript 在异步存储获取+;国家?,javascript,react-native,Javascript,React Native,我正在尝试为我的react本机应用程序构建设置屏幕。我正在使用异步存储来保存数据。以下是我目前的设置方式 状态最初具有默认值。任何时候更新一个设置组件,它都会将数据放入异步存储,并更新状态以更新UI,并显示每个设置的正确值 问题是在重新加载应用程序时更新状态,因此所有设置组件都会反映为用户离开时的状态。每次我重新编译时,设置都会返回到初始默认值 以下是我试图通过以下方式实现这一目标的代码: async componentWillMount(){ settings = [
async componentWillMount(){
settings =
[
'buildtol',
'decimal_places',
'response_time',
'device_number'
]
await AsyncStorage.multiGet(settings, (err, stores)=> {
for(i = 0; i < stores.length; ++i){
let key = stores[i][0];
let val = stores[i][1];
try{
this.setState({key : val})
console.log('key: ' + key + ' val: ' + val);
}catch(e){
console.log(e);
}
}
})
}
异步组件willmount(){
设置=
[
“buildtol”,
“小数点”,
“响应时间”,
“设备号”
]
等待AsyncStorage.multiGet(设置,(错误,存储)=>{
对于(i=0;i如果我只执行一个get,而不是多个get,这是可行的。一旦我尝试像上面这样做,它就不会反映UI中的变化。只是出于好奇,为什么在使用回调时使用async Wait?除了有人针对类似问题在线程上建议它之外,没有任何真正的原因,所以我想我应该抛出一个hail mary并尝试一下。当你使用multiget时,你得到了正确的存储吗?我的意思是,你确定除setstate之外的所有功能都正常工作吗?是的,我的console.log行显示了正确的键/值。因此,它正在正确地获取它。只是没有正确更新状态。我想我可能只是不正确地完成了这项任务。我可能应该在应用程序加载时加载这些值,然后将它们作为道具传递到屏幕上。仍然有点不确定这种任务的设计理念应该如何。