首先看看官網對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模塊
功能強大、好用、清晰、