您好,登錄后才能下訂單哦!
利用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)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。