从本机反应中获取Asyncstorage数据库中数据的最佳实践

问题描述 投票:0回答:1

我试图使用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中获取值

android ios reactjs react-native asyncstorage
1个回答
1
投票

当你await的东西,你正在等待承诺解决价值。你有点混合旧的做事方式(回调)和新的方式(Promises / async-await)

const x = await AsyncStorage.getItem('DB')

编辑:我看到有一个可选的回调 - 但即使在文档中他们建议只是通过Promise链等待/解析价值

要回答你的问题,

  1. 因为你正在设置状态,所以它应该放在componentDidMount
  2. AsyncStorage.getItem('DB').then((result) => this.setState({ dataList: result })
© www.soinside.com 2019 - 2024. All rights reserved.