ReactNativeAsyncStorage本地存储工具类
利用react-native组件AsyncStorage,通过promise,保存本地数据,具体内容如下
创新互联-专业网站定制、快速模板网站建设、高性价比东安网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式东安网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖东安地区。费用合理售后完善,十多年实体公司更值得信赖。
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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
分享名称:ReactNativeAsyncStorage本地存储工具类
文章位置:http://myzitong.com/article/ppoeei.html