您好,欢迎来到一二三四网。
搜索
您的当前位置:首页React Native AsyncStorage本地存储工具类

React Native AsyncStorage本地存储工具类

来源:一二三四网


利用react-native组件AsyncStorage,通过promise,保存本地数据,具体内容如下

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;
 }

}

外界调用

保存

StorageUtil.saveJsonObject(KEY_LOCAL_USER_INFO, user);

读取

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

清除

StorageUtil.remove(KEY_LOCAL_USER_INFO)

Copyright © 2019- howto1234.net 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务