响应本机AsyncStorage错误响应

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

已经创建了React Native应用,并已使用AsyncStorage受益于其存储机制。

要保存在AsyncStorage中,请使用代码:

  _storeData = async (param) => {
    try {
      let par = JSON.stringify(param);
      //await AsyncStorage.setItem(this.key, par);
      Utilities.setItem(this.key, par);
      this._retrieveData();
    } catch (error) {
      console.log(JSON.stringify(error));
    }
  };

要检索数据:

 _retrieveData = async () => {
    try {      
      const value = Utilities.getItem(this.key);
      if (value !== null) {
        alert('data is new: ' + JSON.stringify(value));
      }
    } catch (error) {
    }
  };

并且,要在Utilities部分中使用setItem和getItem:

const setItem = (key, value) => {
  if (!key || !value) return;
  AsyncStorage.setItem(key, value);
};

const getItem = (key) => {
  if (!key) return;
  var val = AsyncStorage.getItem(key);
  return val;
};

正在保存数据,但是我得到的响应看起来不正确,因为它是一串'奇怪'的字符:

{"_40":0,"_65":0,"_55":null,"_72":null}

有人知道我为什么得到这样的答案吗?

react-native asyncstorage
1个回答
3
投票

请注意,AsyncStorage.getItem也是异步的-奇怪的字符代表getItem返回的承诺。

使用var val = await AsyncStorage.getItem(key);并将您的getItem实用程序功能标记为async。您也需要在awaitUtilities.getItem的任何调用上都使用Utilities.setItem

© www.soinside.com 2019 - 2024. All rights reserved.