AsyncStorage使用
/**
* AsyncStorage是一個簡單的姑裂、異步的馋袜、持久化的Key-Value存儲系統(tǒng),
*/
'use strict';
import React from 'react';
import ReactNative, {AsyncStorage} from 'react-native';
class StorageUtil {
/**
* 根據(jù)key獲取json數(shù)值
* @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數(shù)值
* @param key
* @param value
* @returns {Promise<string>}
*/
static save(key, value) {
return AsyncStorage.setItem(key, JSON.stringify(value));
}
/**
* 更新key對應的json數(shù)值
* @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數(shù)值
* @param key
* @returns {Promise<string>}
*/
static delete(key) {
return AsyncStorage.removeItem(key);
}
/**
* 刪除所有配置數(shù)據(jù)
* @returns {Promise<string>}
*/
static clear() {
return AsyncStorage.clear();
}
}
export default StorageUtil;
/***** Storage *************************************************** */
/**
* 獲取key對應的Storage數(shù)據(jù)
* @param key stirng類型
* @returns {*}
*/
get(key) {
return StorageUtil.get(key);
}
/**
* 保存key對應的Storage數(shù)據(jù)
* @param key
* @param value
* @returns {*}
*/
save(key, value) {
return StorageUtil.save(key, value);
}
/**
* 刪除key對應的Storage數(shù)據(jù)
* @param key
* @returns {*}
*/
delete(key) {
return StorageUtil.delete(key);
}
/**
* 清除所有的Storage數(shù)據(jù)
* @returns {*}
*/
clear() {
return StorageUtil.clear();
}
存儲獲取
async getStorage() {
let logic = await super.get(logic);
if (!logic) {
// 如果是首次登錄炭分, 跳轉(zhuǎn)到引導界面
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);
}
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者