AsyncStorage无法解析或拒绝

时间:2018-01-14 16:44:52

标签: react-native asyncstorage

我试图从异步存储中获取项目。

componentDidMount() {
    console.log('componentDidMount')
    AsyncStorage.getItem(STORAGE_KEY)
      .then(storage => console.log('then', storage))
      .catch(err => console.log('catch', err))
}

也尝试这种方式:

componentDidMount() {
    console.log('componentDidMount')
    AsyncStorage.getItem(STORAGE_KEY, (err, data) => {
      console.log('data', data);
      console.log('err', err)
    });
 }

但无论我怎么做,调试器只输出componentDidMount日志,而我根本没有得到结果。

知道这里有什么问题吗?

编辑:我通过世博会运行应用

4 个答案:

答案 0 :(得分:1)

博览会存在问题。完全重启博览会后,我最初发布的相同代码运行正常。

答案 1 :(得分:0)

你应该试试这个:

async componentDidMount(){  
  await AsyncStorage.getItem(STORAGE_KEY)  
    .then( (value) =>{  
       console.warn(value);  
    }  
 );  
}

希望它有效。

答案 2 :(得分:0)

AsyncStorage是一个异步函数。它意味着您想在函数中使用它,它必须是异步的。使其异步的方法是在函数名称之前放置async关键字。

async componentDidMount() {
    console.log('componentDidMount')
    AsyncStorage.getItem(STORAGE_KEY)
      .then(storage => console.log('then', storage))
      .catch(err => console.log('catch', err))
}

这应该是这样的。问候

答案 3 :(得分:0)

我遇到了android的问题,我只能解决它捆绑问题。

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

我在package.json的脚本中添加了这个命令。