React Native AsyncStorage本地存储工具类

时间:2021-05-26

利用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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章