异步不返回任何东西



我想通过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。

来保存数据是否保存

相关内容

  • 没有找到相关文章

最新更新