AsyncStorage使用
/**
* AsyncStorage是一个简单的、异步的、持久化的Key-Value存储系统,
*/
'use strict';
import React from 'react';
import ReactNative, {AsyncStorage} from 'react-native';
class StorageUtil {
/**
* 根据key获取json数值
* @param key
* @returns {Promise<TResult>}
*/
static get(key) {
return AsyncStorage.getItem(key).then((value) => {
if (value && value != '') {
const jsonValue = JSON.parse(value);
return jsonValue;
} else {
return null
}
}).catch(() => {
return null
});
}
/**
* 保存key对应的json数值
* @param key
* @param value
* @returns {Promise<string>}
*/
static save(key, value) {
return AsyncStorage.setItem(key, JSON.stringify(value));
}
/**
* 更新key对应的json数值
* @param key
* @param value
* @returns {Promise<TResult>|Promise.<TResult>|Promise<T>}
*/
static update(key, value) {
return AsyncStorage.get(key).then((item) => {
value = typeof value === 'string' ? value : Object.assign({}, item, value);
return AsyncStorage.setItem(key, JSON.stringify(value));
});
}
/**
* 删除key对应json数值
* @param key
* @returns {Promise<string>}
*/
static delete(key) {
return AsyncStorage.removeItem(key);
}
/**
* 删除所有配置数据
* @returns {Promise<string>}
*/
static clear() {
return AsyncStorage.clear();
}
}
export default StorageUtil;
/***** Storage *************************************************** */
/**
* 获取key对应的Storage数据
* @param key stirng类型
* @returns {*}
*/
get(key) {
return StorageUtil.get(key);
}
/**
* 保存key对应的Storage数据
* @param key
* @param value
* @returns {*}
*/
save(key, value) {
return StorageUtil.save(key, value);
}
/**
* 删除key对应的Storage数据
* @param key
* @returns {*}
*/
delete(key) {
return StorageUtil.delete(key);
}
/**
* 清除所有的Storage数据
* @returns {*}
*/
clear() {
return StorageUtil.clear();
}
存储获取
async getStorage() {
let logic = await super.get(logic);
if (!logic) {
// 如果是首次登录, 跳转到引导界面
name = 'Guide';
component = Guide
} else {
if (!logic.isGuide) {
// 如果没有引导
name = 'Guide';
component = Guide;
} else if (!logic.isLogin) {
// 如果没有登录
name = 'Login';
component = Login;
} else {
name = 'Main';
component = Main;
}
}
this.setState({
name: name,
component: component,
params: params,
modalVisible: false
});
this.timer && clearTimeout(this.timer);
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。