React Native AsyncStorage本地存储工具类
利用react-native组件AsyncStorage,通过promise,保存本地数据,具体内容如下
import{AsyncStorage}from'react-native'; exportdefaultclassStorageUtil{ /** *保存一个Json对象 *@paramkey *@paramvalue *@paramcallback */ staticasyncsaveJsonObject(key,value){ returnawaitthis.saveString(key,JSON.stringify(value)); } /** *获取一个Json对象 *@paramkey *@paramdefaultObject */ staticasyncgetJsonObject(key,defaultObject){ letresult=null; try{ result=awaitthis.getString(key,null); result=awaitJSON.parse(result); }catch(err){ if(defaultObject){ returnPromise.resolve(defaultObject); }else{ returnPromise.reject(err); } } returnresult; } /** *保存一个值 *@paramkey *@paramvalue */ staticasyncsaveString(key,value){ if(key!=null&&value!=null){ //Key与Value都不为空 try{ awaitAsyncStorage.setItem(key,value) }catch(err){ returnPromise.reject(err) } returnPromise.resolve(true); }else{ returnPromise.reject({"msg":"Keyandvaluecannotbenull"}); } } /** *获取一个值 *@paramkey *@paramdefaultValue */ staticasyncgetString(key,defaultValue){ letresult=null; letnoDataError={"msg":"Novaluefound!"}; if(key!=null){ result=awaitAsyncStorage.getItem(key); //console.log('getstringresult',result,defaultValue); returnresult?result:defaultValue!=null?defaultValue:Promise.reject(noDataError); }else{ if(defaultValue){ returnPromise.resolve(defaultValue); }else{ returnPromise.reject(noDataError); } } } /** *移除一个值 *@paramkey */ staticasyncremove(key){ letresult=true; try{ result=awaitAsyncStorage.removeItem(key); }catch(err){ returnPromise.reject(err) } returnresult; } /** *获取所有已存储 */ staticasyncgetAllKeys(){ letresult=true; try{ result=awaitAsyncStorage.getAllKeys(); }catch(err){ returnPromise.reject(err) } returnresult; } }
外界调用
保存
StorageUtil.saveJsonObject(KEY_LOCAL_USER_INFO,user);
读取
StorageUtil.getJsonObject(KEY_LOCAL_USER_INFO).then(data=>{console.log(data))}
清除
StorageUtil.remove(KEY_LOCAL_USER_INFO)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。