AsyncStorage不会返回任何内容

时间:2017-12-06 11:20:05

标签: android reactjs react-native

我想通过asyncstorage在我的react-native应用程序中存储数据,但是我遇到了问题。我这样使用它:

 async componentDidMount() { 
 console.log("Flag1");
 await AsyncStorage.setItem('name', 'I like to save it.');
 console.log("Flag2");
 }

但由于某种原因,我无法达到" Flag2",而且我没有从await调用中收到错误或数据。 我也尝试过使用try / catch,面临同样的问题。

编辑我注意到AsyncStorage仅在我打开模拟器时才适用于我,在几次使用后它停止工作。

3 个答案:

答案 0 :(得分:2)

setItem和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)
        })
    });
}

答案 1 :(得分:1)

我认为,最好的做法是,如本机文档here所建议的那样,是用mean(c(4173, 3501, 4434, 3325, 3509)) # [1] 3788.4 try表达式包装它。

catch

您可以从组件中的任何位置调用此函数。

答案 2 :(得分:0)

您的代码应该有效。 我试过了

async componentDidMount(){
  await AsyncStorage.setItem('name', 'I like to save it.');
  console.log(await AsyncStorage.getItem('name')); // I like to save it. 
}

尝试使用await AsyncStorage.getItem检查是否保存了该数据。