我试图从异步存储中获取项目。
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
日志,而我根本没有得到结果。
知道这里有什么问题吗?
编辑:我通过世博会运行应用
答案 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的脚本中添加了这个命令。