AsyncStorage返回[对象对象]-反应本机

时间:2018-07-31 16:56:19

标签: react-native

我想使用AsyncStorage,但它返回[object object]

Phone.js组件:

        commonHelper.setData("commonConstants.KEY_CODE",'code');

             this.goTo('Activation');

Activation.js组件:

   const code = commonHelper.getData("commonConstants.KEY_CODE")
   this.setState({searchString:code.toString()})

commonHelper.js

function getData(key) {
  try {
       const value = AsyncStorage.getItem(key).then(val => {
         return JSON.parse(val)
       });
       return value
     } catch (err) {
       throw err
     }
}

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

我的问题在哪里?

1 个答案:

答案 0 :(得分:2)

AsyncStorage正在返回承诺。您的getData兑现了承诺。

要读取数据,您需要使用.then

commonHelper.getData("commonConstants.KEY_CODE")
    .then(code => {
        this.setState({searchString:code}) // or code.toString().. depends on what you stored
    });`

另外,由于您要在return value中返回承诺,因此getData函数中的.then是必需的