我试图使用Asyncstorage从数据库中获取数据。就像下面一样。
async () => {
var x;
await AsyncStorage.getItem('DB', (err, result) => {
x = result; // I'm getting the data here
});
return JSON.parse(x);// this statement gets executed before I get values from result to x
},
我的问题如下:1)代码放在哪里(在componentDidMount或构造函数中)2)我应该如何获取this.state.dataList中的值
因为在承诺的.then中返回另一个承诺,我无法在this.state.dataList中获取值
当你await
的东西,你正在等待承诺解决价值。你有点混合旧的做事方式(回调)和新的方式(Promises / async-await)
const x = await AsyncStorage.getItem('DB')
编辑:我看到有一个可选的回调 - 但即使在文档中他们建议只是通过Promise链等待/解析价值
要回答你的问题,
componentDidMount
中AsyncStorage.getItem('DB').then((result) => this.setState({ dataList: result })