Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> ReactNative (API)AsyncStorage存儲詳解及實例

ReactNative (API)AsyncStorage存儲詳解及實例

編輯:關於Android編程

AsyncStorage存儲類似Android中的sharedpreference存儲或者IOS中的NSDefaultUser不過ReactNative中的AsyncStorage只能存儲字符串類型

這裡寫圖片描述

常用方法:

getItem(key:string,callback?:?(error:?Error,result:?string)=>void) 靜態方法,該通過key字段來進行查詢存儲的數據,把該結果值作為參數傳入第二個callback方法。如果發生錯誤,會把Error對象傳入callback方法。該方法最終返回一個Promise對象

setItem(key:string,value:string,callback?:?(error:?Error)=>void) 靜態方法,該根據key字段設置value內容,完成之後進行回調callback方法。如果發生錯誤會把Error對象傳入callback方法中。該方法返回一個Promise對象。

removeItem(key:string,callback?:?(error:?Error)=>void) 靜態方法,根據key進行刪除值,成功之後進行回調callback方法。如果發生錯誤會把Error對象傳入callback方法中。該方法返回一個Promise對象。

/**
 * Created by Administrator on 2016/9/12.
 */
import React, {Component} from 'react';
import {
  StyleSheet,
  View,
  Text,
  AsyncStorage
} from 'react-native';

var keyName = 'name';
var keyValue = '張三';
class AsyncStorageG extends Component {

  constructor(props) {
    super(props);
    this.state = {
      result: '初始值'
    };
  }

  render() {
    return (

      <View style={{flex: 1}}>
        <Text
          style={styles.text}
          onPress={this.save.bind(this)}>存</Text>
        <Text
          style={styles.text}
          onPress={()=>this.load()}>取</Text>
        <Text
          style={styles.text}
          onPress={()=> this.remove()}>刪除</Text>

        <Text
          style={styles.text}
        >存儲的內容是------------------{this.state.result}</Text>
      </View>

    )
  }

  /**
   * 存數據
   */
  save() {
    //this 是指當前對象
    this2 = this;
    AsyncStorage.setItem(keyName, keyValue, function (error) {
      if (error) {
        alert('存儲失敗');
      } else {
        this2.setState(
          {
            result: '數據已經保存,取出來看看吧!!!'
          }
        )
      }
    })
  }

  /**
   * 取數據
   */
  load() {
    //this 是指當前對象
    this2 = this;
    AsyncStorage.getItem(keyName, function (error, result) {
      if (!error) {
        this2.setState(
          {
            result: result === null ? '數據已經刪除,現在取的是空值' : result
          }
        )
      }
    })
  }

  /**
   * 兩個參數:
   * 一個是要刪除指定key內容
   * 第二個是一個回調函數
   */
  remove() {
    //this 是指當前對象
    this2 = this;
    AsyncStorage.removeItem(keyName, function (error) {

      if (!error) {
        this2.setState(
          {
            result: '數據已經刪除'
          }
        )
      }

    })
  }

}

const styles = StyleSheet.create({
  text: {
    fontSize: 20
  }
});

//es6寫法
export default AsyncStorageG;



感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved