首先看看官网对AsyncStorage的定义:
AsyncStorage是一个简单的、异步的、持久化的Key-Value存储系统,它对于App来说是全局性的。它用来代替LocalStorage。
LocalStorage是什么呢?
在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题
目前React项目中也是使用LocalStorage
我们注意到一个非常关键的词:异步。这也是我在项目中遇到的问题。
当我们在ComponentWillMount()中使用使用AsyncStorage获取本地数据的时候,由于是一个异步的过程导致界面加载的时候,某些数据还未获取到,但是已经被界面用到了。
我的错误的例子:
这里写代码片
简单的方法
注意:`AsyncStorage“只能存储字符串,需要把对象转换为字符串才行
save() {
var object = {username: 'li', id: '654321654321'};
// JSON.stringify(object): JSON对象转换为字符串 用来存储
AsyncStorage.setItem('object', JSON.stringify(object), (error) => {
if (error) {
alert('失败');
} else {
alert('成功');
}
});
}
read(){
AsyncStorage.getItem('object',(error,result)=>{
if (error) {
alert('失败');
} else {
alert('成功');
}
})
}
delete(){
AsyncStorage.removeItem('object',(error)=>{
if (error) {
alert('失败');
} else {
alert('成功');
}
});
}
其他方法请移步API
本文重点!!!!!!!!使用封装的react-native-storage模块
功能强大、好用、清晰、