Heim > Web-Frontend > js-Tutorial > Reagieren Sie auf die lokale Speichertoolklasse Native AsyncStorage

Reagieren Sie auf die lokale Speichertoolklasse Native AsyncStorage

小云云
Freigeben: 2018-05-17 16:54:01
Original
1993 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die lokale Speichertoolklasse React Native AsyncStorage zur Verfügung. Interessierte Freunde können darauf verweisen.

Verwenden Sie die reaktionsnative Komponente AsyncStorage, um lokale Daten durch Versprechen zu speichern. Der spezifische Inhalt lautet wie folgt

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;
  }

}
Nach dem Login kopieren

Externer Aufruf

Speichern

StorageUtil.saveJsonObject(KEY_LOCAL_USER_INFO, user);
Nach dem Login kopieren

Lesen

StorageUtil.getJsonObject(KEY_LOCAL_USER_INFO).then(data=>{console.log(data))}
Nach dem Login kopieren

Löschen

StorageUtil.remove(KEY_LOCAL_USER_INFO)
Nach dem Login kopieren

Verwandte Empfehlungen:

Beispiel für LocalStorage lokalen Speicher in html5

HTML5 implementiert die lokale Speicherfunktion des Warenkorbs

Eine kurze Diskussion der lokalen Speicherung von localStorage

Das obige ist der detaillierte Inhalt vonReagieren Sie auf die lokale Speichertoolklasse Native AsyncStorage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage