已经创建了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}
有人知道我为什么得到这样的答案吗?
请注意,AsyncStorage.getItem
也是异步的-奇怪的字符代表getItem
返回的承诺。
使用var val = await AsyncStorage.getItem(key);
并将您的getItem
实用程序功能标记为async
。您也需要在await
和Utilities.getItem
的任何调用上都使用Utilities.setItem
。