首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AsyncStorage不能正常工作

AsyncStorage不能正常工作
EN

Stack Overflow用户
提问于 2018-02-14 23:33:31
回答 1查看 375关注 0票数 0

我在组件的构造函数中添加了AsyncStorage的setItem函数,然后使用getItem函数创建了一个函数来获取它的值,但它返回了空。我是不是遗漏了什么?

下面是我的代码:

代码语言:javascript
复制
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()函数也不起作用:

代码语言:javascript
复制
AsyncStorage.setItem('testKey','blah blah').then(() => {
  console.log("I never get executed."); // -> this code never executes for some reason
});

我一直在试着解决这个问题,但是没有效果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-14 23:41:33

请记住,(setItem和getItem)都是异步执行的,async/await应该可以解决您的问题,如documentation中所述

代码语言:javascript
复制
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
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48790827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档