反应本机AsyncStorage无法解析

时间:2018-11-04 10:30:34

标签: reactjs react-native

我在React native中使用asyncstorage,我遵循了FB的指南。但我的诺言没有挽救。

componentDidMount() {
    async function getitem() {
      try {
        const retrievedItem = await AsyncStorage.getItem("user");
        console.log(retrievedItem);

        const item = JSON.parse(retrievedItem);
        console.log(item);
        return item;
      } catch (error) {
        console.log(error.message);
      }
      return;
    }
    getitem();
  }

我的控制台就像..这个...

 {"_40":0,"_65":0,"_55":null,"_72":null} AddUser.js:33 {_40: 0, _65: 
 0,
 _55: null, _72: null}

1 个答案:

答案 0 :(得分:1)

您应使用承诺模式退货。

尝试这样。

async function getitem() {
  try {
    const retrievedItem = await AsyncStorage.getItem("user");
    const item = JSON.parse(retrievedItem);
    return Promise.resolve(item);
  } catch (error) {
    return Promise.reject(error)
  }
  // return; <-- don't need this!
}

而且,我建议下面使用更好的反应编码模式。

componentDidMount() {
  this.getItem("YOUR_KEY").then(response => {
    // do stuff using response ..
  });
}

async getItem(key) {
  //.. do stuff
}