来保存数据是否保存
我想通过asyncstorage存储数据,但我有问题。我这样使用:
async componentDidMount() {
console.log("Flag1");
await AsyncStorage.setItem('name', 'I like to save it.');
console.log("Flag2");
}
,但由于某种原因,我无法达到" flag2",我不会从等待电话中收到错误或数据。我还尝试使用尝试/捕捉,面临同样的问题。
edit 我注意到Asyncstorage只有在我只是打开模拟器时才对我有用,几次使用后,它停止工作。
stetItem和getItem是异步的,您应该发送回调作为参数以获取结果。喜欢
componentDidMount(){
AsyncStorage.setItem('name', 'I like to save it.', ()=>{
console.log("set item success")
AsyncStorage.getItem("name", (error, result)=>{
console.log("get result " + result)
})
});
}
我认为,最好的做法是,如在此处的反应文档所建议的那样,是用 try
catch
表达式包装。
_setAsyncStorage = async () => {
try { await AsyncStorage.setItem('@name', 'I like to save it');
} catch (error) {
// Error saving data
}
}
您可以从组件中的任何点调用此功能。
您的代码应起作用。我尝试了
async componentDidMount(){
await AsyncStorage.setItem('name', 'I like to save it.');
console.log(await AsyncStorage.getItem('name')); // I like to save it.
}
尝试通过使用等待asyncstorage.getitem。