最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

React Native AsyncStorage本地存儲工具類

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:27:03
文檔

React Native AsyncStorage本地存儲工具類

React Native AsyncStorage本地存儲工具類:利用react-native組件AsyncStorage,通過promise,保存本地數(shù)據(jù),具體內(nèi)容如下 import {AsyncStorage} from 'react-native'; export default class StorageUtil { /** * 保存一個Json對象 * @param key * @par
推薦度:
導讀React Native AsyncStorage本地存儲工具類:利用react-native組件AsyncStorage,通過promise,保存本地數(shù)據(jù),具體內(nèi)容如下 import {AsyncStorage} from 'react-native'; export default class StorageUtil { /** * 保存一個Json對象 * @param key * @par

利用react-native組件AsyncStorage,通過promise,保存本地數(shù)據(jù),具體內(nèi)容如下

import {AsyncStorage} from 'react-native';

export default class StorageUtil {

 /**
 * 保存一個Json對象
 * @param key
 * @param value
 * @param callback
 */
 static async saveJsonObject(key, value) {
 return await this.saveString(key, JSON.stringify(value));
 }


 /**
 * 獲取一個Json對象
 * @param key
 * @param defaultObject
 */
 static async getJsonObject(key, defaultObject) {
 let result=null;
 try{
 result=await this.getString(key,null);
 result=await JSON.parse(result);
 }catch (err){
 if(defaultObject){
 return Promise.resolve(defaultObject);
 }else{
 return Promise.reject(err);
 }
 }
 return result;

 }


 /**
 * 保存一個值
 * @param key
 * @param value
 */
 static async saveString(key, value) {
 if (key != null && value != null) {
 //Key 與Value 都不為空
 try {
  await AsyncStorage.setItem(key, value)
 } catch (err) {
 return Promise.reject(err)
 }
 return Promise.resolve(true);
 } else {
 return Promise.reject({"msg": "Key and value can not be null"});
 }
 }

 /**
 * 獲取一個值
 * @param key
 * @param defaultValue
 */
 static async getString(key, defaultValue) {
 let result = null;
 let noDataError = {"msg": "No value found !"};
 if (key != null) {
 result = await AsyncStorage.getItem(key);
 // console.log('get string result',result,defaultValue);
 return result ? result : defaultValue!=null ? defaultValue : Promise.reject(noDataError);
 } else {
 if (defaultValue) {
 return Promise.resolve(defaultValue);
 } else {
 return Promise.reject(noDataError);
 }
 }

 }


 /**
 * 移除一個值
 * @param key
 */
 static async remove(key) {
 let result = true;
 try {
 result = await AsyncStorage.removeItem(key);
 } catch (err) {
 return Promise.reject(err)
 }
 return result;
 }


 /**
 * 獲取所有已存儲
 */
 static async getAllKeys() {
 let result=true;
 try {
 result = await AsyncStorage.getAllKeys();
 } catch (err) {
 return Promise.reject(err)
 }
 return result;
 }

}

外界調(diào)用

保存

StorageUtil.saveJsonObject(KEY_LOCAL_USER_INFO, user);

讀取

StorageUtil.getJsonObject(KEY_LOCAL_USER_INFO).then(data=>{console.log(data))}

清除

StorageUtil.remove(KEY_LOCAL_USER_INFO)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

React Native AsyncStorage本地存儲工具類

React Native AsyncStorage本地存儲工具類:利用react-native組件AsyncStorage,通過promise,保存本地數(shù)據(jù),具體內(nèi)容如下 import {AsyncStorage} from 'react-native'; export default class StorageUtil { /** * 保存一個Json對象 * @param key * @par
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top