首先看看官网对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模块
功能强大、好用、清晰、