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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。