ReactNative (API)AsyncStorage存储详解及实例

 更新时间:2016年10月08日 11:04:23   作者:顺子_RTFSC  
这篇文章主要介绍了ReactNative (API)AsyncStorage存储详解及实例的相关资料,需要的朋友可以参考下

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;



感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Android刮刮卡效果实现代码

    Android刮刮卡效果实现代码

    这篇文章主要为大家详细介绍了Android刮刮卡效果实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • android实现多点触摸效果

    android实现多点触摸效果

    这篇文章主要为大家详细介绍了android实现多点触摸效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Android延迟实现的几种解决方法及原理分析

    Android延迟实现的几种解决方法及原理分析

    这篇文章主要给大家介绍了关于Android延迟实现的几种解决方法以及其中的原理分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • android预置默认的语音信箱号码具体实现

    android预置默认的语音信箱号码具体实现

    在此介绍以xml的方式预置VM number的方法,以及如何允许用户去修改并能够记住用户的选择
    2013-06-06
  • Android获取设备CPU核数、时钟频率以及内存大小的方法

    Android获取设备CPU核数、时钟频率以及内存大小的方法

    这篇文章主要介绍了Android获取设备CPU核数、时钟频率以及内存大小的方法,涉及Android针对系统硬件相关操作技巧,需要的朋友可以参考下
    2016-07-07
  • Android左右滑出菜单实例分析

    Android左右滑出菜单实例分析

    想在首页加个从左滑动出来的菜单,我查阅网上资料,并自己摸索,实现了左、右两边都能滑出菜单,并且,左、右菜单中,都可以加ListView等这类需要解决GestureDetector冲突的问题
    2013-06-06
  • Android开发之天气趋势折线图

    Android开发之天气趋势折线图

    在开发天气APP的时候会要显示多天的信息,所以加一个折线图来显示一下天气变化趋势是很不错的效果,本文详细介绍了开发过程,下面一起来看看。
    2016-08-08
  • Android WebView软键盘遮挡输入框方案详解

    Android WebView软键盘遮挡输入框方案详解

    这篇文章主要介绍了Android WebView软键盘遮挡输入框方案详解,本文提供了一种新的解决 WebView 输入框被软键盘遮挡的思路,不过这种思路也有它的局限性,目前来看仅适用于全屏的 WebView 中,需要的朋友可以参考下
    2022-06-06
  • 6步轻松实现两个listView联动效果

    6步轻松实现两个listView联动效果

    这篇文章主要为大家详细介绍了教大家通过6步轻松实现两个listView联动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Kotlin语言使用WebView示例介绍

    Kotlin语言使用WebView示例介绍

    随着后台技术的不断发展,App前端的应用都布置了Web页面的界面,这个界面就是由WebView组件渲染出来的。WebView由如下优点:可以直接显示和渲染Web页面或者网页;可以直接调用网络上或者本地的html文件,也可以和JavaScript交互使用
    2022-09-09

最新评论