我一直在寻找有关堆栈溢出的答案,但是到目前为止,什么都没有。 由于要在return()函数中显示其内容,因此我使用this function(下)检索一个简单的数组。
_retrieveData = async () => {
try {
const value = await AsyncStorage.getItem('FavouritesArray');
if (value !== null) {
// We have data!!
console.log(value);
}
} catch (error) {
// Error retrieving data
}
};
代码确实起作用,并且它记录了我想要的数组([“ Rose”,“ Mojito”]),但是我不知道如何在{{1}之外获取数组}函数。我尝试过将其返回(返回承诺)并将其放入全局变量中,然后返回它,但这也只返回了一个Promise对象。
如何从该异步函数中提取填充的数组?
答案 0 :(得分:1)
您可以使用AsyncStorage这样存储和检索数据:
const storeData = async (key, value) => {
try {
await AsyncStorage.setItem(key, value);
} catch (error) {
console.log(error);
}
};
const getData = async key => {
try {
const data = await AsyncStorage.getItem(key);
if (data !== null) {
console.log(data);
return data;
}
} catch (error) {
console.log(error);
}
};
然后使用键名称调用getData,就像您将数组存储在任意位置一样,并将键设置为状态数组。
await getData("yourarraykey")
.then((data) => data)
.then((value) => this.setState({ yourarraystate: value }))
.catch((err) => console.log("AsyncStorageErr: " + err));
之后,在this.state.yourarraystate
中,您获取的数组的值将可用。
〜褪色