我在组件的构造函数中添加了AsyncStorage的setItem函数,然后使用getItem函数创建了一个函数来获取它的值,但它返回了空。我是不是遗漏了什么?
下面是我的代码:
constructor(props) {
super(props);
try {
AsyncStorage.setItem('testKey', 'I like to save it.');
} catch (error) {
alert("error", error);
// Error saving data
}
}
getData(){
AsyncStorage.getItem('testKey').then((data) => {
alert("data", data);
})
}基本上,我想将一个accessToken存储到AsyncStorage中,一旦设置好了,我就想调用getItem函数来使用它。
此外,setItem的then()函数也不起作用:
AsyncStorage.setItem('testKey','blah blah').then(() => {
console.log("I never get executed."); // -> this code never executes for some reason
});我一直在试着解决这个问题,但是没有效果。
发布于 2018-02-14 23:41:33
请记住,(setItem和getItem)都是异步执行的,async/await应该可以解决您的问题,如documentation中所述
constructor(props) {
super(props);
this.setData();
}
async setData() {
try {
await AsyncStorage.setItem('testKey', 'I like to save it.');
} catch (error) {
// Error setting data
}
}
async getData(){
try {
const value = await AsyncStorage.getItem('testKey');
if (value) {
// We have data!!
console.log(value);
}
} catch (error) {
// Error retrieving data
}
}https://stackoverflow.com/questions/48790827
复制相似问题