AsyncStorage不起作用-反应本机

时间:2018-08-07 13:00:33

标签: react-native

我想使用AsyncStorage作为设置并获取值,但它在componentDidMount内不起作用:

componentDidMount(){

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

 }

我的commonHelper.js

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);
  }
}

2 个答案:

答案 0 :(得分:0)

按照Dan的建议,异步使用它:

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);
  }
}

答案 1 :(得分:0)

import { setData } from '../commonHelper';

componentDidMount() {
  this.updateStorage();
}

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

CommonHelper函数:

export const setData = async (key, value) => {
  const item = await AsyncStorage.setItem(key, value);
  return item;
}