首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AsyncStorage不工作-反应本机

AsyncStorage不工作-反应本机
EN

Stack Overflow用户
提问于 2018-08-07 13:00:33
回答 2查看 97关注 0票数 2

我想使用AsyncStorage作为set并获取值,但它在componentDidMount内部不起作用

代码语言:javascript
复制
componentDidMount(){

    commonHelper.setData('mmmm','12345');
    commonHelper.getData('mmmm')
    .then(data => {
      console.log(data)
    });

 }

我的commonHelper.js

代码语言:javascript
复制
function getData(key) {
  try {
       const value = AsyncStorage.getItem(key).then(val => {
         return val
       });
       return value
     } catch (err) {
       throw err
     }
}

function setData(key,value) {
  try {
    AsyncStorage.setItem(key, value);
  } catch (error) {
    console.log("Error saving data" + error);
  }
}
EN

回答 2

Stack Overflow用户

发布于 2018-08-07 13:17:26

正如Dan建议的那样,异步地使用它:

代码语言:javascript
复制
import { setData } from './commonHelper';

  ...

  componentDidMount(){
    commonHelper.setData('mmmm','12345')
    .then(() => { /* do something. The data is stored now. */});
  }


//commonHelper.js

export async function setData(key, value) {
  try {
    await AsyncStorage.setItem(key, value);
  } catch (error) {
    console.log("Error saving data" + error);
  }
}
票数 0
EN

Stack Overflow用户

发布于 2018-08-07 13:47:51

代码语言:javascript
复制
import { setData } from '../commonHelper';

componentDidMount() {
  this.updateStorage();
}

updateStorage = async () => {
  const item = await setData('mmmm','12345');
  console.log({
    item
  });
}

CommonHelper函数:

代码语言:javascript
复制
export const setData = async (key, value) => {
  const item = await AsyncStorage.setItem(key, value);
  return item;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51727476

复制
相关文章

相似问题

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