📅  最后修改于: 2023-12-03 15:36:18.161000             🧑  作者: Mango
React Native提供了一种称为AsyncStorage的异步存储系统,它可用于在本地存储字符串。该系统非常类似于localStorage,但存储系统是异步的,这意味着您可以安全地在应用程序中进行长时间加塞操作,而不必担心阻塞UI线程。
在React Native中,AsyncStorage是作为React Native核心库的一部分提供的,因此无需在项目中安装它。您只需要导入它,就可以使用它了。您可以按照以下方式导入它:
import { AsyncStorage } from 'react-native';
您可以使用setItem(key,value)方法将数据键值对存储在AsyncStorage中。 key和value都必须是字符串。以下代码展示如何将数据保存到AsyncStorage中:
AsyncStorage.setItem('name', 'John Doe');
如果您需要将JavaScript对象或数组存储在AsyncStorage中,可以使用JSON.stringify将其转换为JSON字符串,如下所示:
let myObj = { name: 'John Doe', age: 30 };
AsyncStorage.setItem('person', JSON.stringify(myObj));
您可以使用getItem(key)方法从AsyncStorage中获取存储的数据。 key必须是字符串。以下代码展示如何从AsyncStorage中获取数据:
AsyncStorage.getItem('name').then((value) => console.log(value));
回调将返回存储在AsyncStorage中的值。
如果您存储了JavaScript对象或数组,则必须使用JSON.parse将其转换回对象或数组,如下所示:
AsyncStorage.getItem('person').then((value) => {
let myObj = JSON.parse(value);
console.log(myObj.name);
});
在读取或写入AsyncStorage时,可能会发生错误。例如,如果尝试读取不存在的键,则会返回null。您可以使用try-catch块捕获错误或使用Promise.catch方法,如下所示:
try {
AsyncStorage.getItem('nonexistent_key').then((value) => {
console.log(value);
});
} catch (error) {
console.log(error.message);
}
AsyncStorage.getItem('nonexistent_key').then((value) => console.log(value))
.catch((error) => console.log(error.message));
要清除AsyncStorage中存储的数据,可以使用clear()方法,如下所示:
AsyncStorage.clear();
这会清除AsyncStorage中存储的所有数据。如果您想要仅删除一个键,请使用removeItem(key)方法,如下所示:
AsyncStorage.removeItem('person');
这会从AsyncStorage中删除指定键的数据。
以上就是从异步存储中获取数据的全部过程。异步存储是一个非常有用和强大的工具,用于保存应用程序状态和其他重要数据。