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;

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索reactnative
, 实例详解
, (API)AsyncStorage存储
, (API)AsyncStorage
AsyncStorage
react asyncstorage、react native async、react native storage、reactnative storage、react async await,以便于您获取更多的相关知识。

时间: 2024-10-31 12:13:12

ReactNative (API)AsyncStorage存储详解及实例_Android的相关文章

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

AsyncStorage存储类似Android中的sharedpreference存储或者IOS中的NSDefaultUser不过ReactNative中的AsyncStorage只能存储字符串类型 常用方法: getItem(key:string,callback?:?(error:?Error,result:?string)=>void) 静态方法,该通过key字段来进行查询存储的数据,把该结果值作为参数传入第二个callback方法.如果发生错误,会把Error对象传入callback方法

Android4.4 访问外部存储详解及实例_Android

Android4.4  访问外部存储 在Android 4.4系统中,外置存储卡(SD卡)被称为二级外部存储设备(secondary storage),应用程序已无法往外置存储卡(SD卡)写入数据,并且WRITE_EXTERNAL_STORAGE只为设备上的主要外部存储(primary storage)授予写权限,对于其他外部存储,其上的文件属性都改为基于文件夹结构,应用无需获取WRITE_EXTERNAL_STORAGE权限,但可以管理与自己包名相关的文件夹.举例来说,如果应用的包名是com.

Android 混淆代码详解及实例_Android

为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其他地方拷贝一个过来 2. 最重要的就是在proguard-project.txt添加混淆的申明了:  a. 把所有你的jar包都申明进来,例如:  -libraryjars libs/apns_1.0.6.jar  -libraryjars lib

Android 实现仿网络直播弹幕功能详解及实例_Android

Android 网络直播弹幕                最近看好多网络电视,播放器及直播都有弹幕功能,自己周末捣鼓下并实现,以下是网上的资料,大家可以看下. 现在网络直播越来越火,网络主播也逐渐成为一种新兴职业,对于网络直播,弹幕功能是必须要有的,如下图: 首先来分析一下,这个弹幕功能是怎么实现的,首先在最下面肯定是一个游戏界面View,然后游戏界面上有弹幕View,弹幕的View必须要做成完全透明的,这样即使覆盖在游戏界面的上方也不会影响到游戏的正常观看,只有当有人发弹幕消息时,再将消息绘

Android通过&quot;记住密码&quot;功能学习数据存储类SharedPreferences详解及实例_Android

SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean.int.float.long和String)存储在应用程序的私有目录下(data/data/包名/shared_prefs/)自己定义的xml文件中.  一.简介 它提供一种轻量级的数据存储方式,通过eidt()方法来修改里面的内容,通过Commit()方法来提交修改后的内容.  二.重要方法 public abstract boo

百度地图API使用方法详解_php实例

最近做了个项目,其中项目中有个需求需要用到百度地图进行导航,通过查阅相关资料参考百度地图api完成了一个例子. 示例一: API地址:http://developer.baidu.com/map/jsdemo.htm <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> &l

Android4.4 访问外部存储详解及实例

Android4.4  访问外部存储 在Android 4.4系统中,外置存储卡(SD卡)被称为二级外部存储设备(secondary storage),应用程序已无法往外置存储卡(SD卡)写入数据,并且WRITE_EXTERNAL_STORAGE只为设备上的主要外部存储(primary storage)授予写权限,对于其他外部存储,其上的文件属性都改为基于文件夹结构,应用无需获取WRITE_EXTERNAL_STORAGE权限,但可以管理与自己包名相关的文件夹.举例来说,如果应用的包名是com.

ReactNative Alert详解及实例代码_Android

Alert顾名思义一就是一个警告框,一般使用情况比如:退出登录,清楚缓存,提示修改密码等等...ReactNative中的Alert只有一个静态方法alert()其中有四个参数:标题,信息,按钮和按钮类型 在Android按钮至多有三个 下面是使用情况: 实例代码: /** * Created by Administrator on 2016/9/12. */ import React, {Component} from 'react'; import { StyleSheet, View, T

Android 混淆代码详解及实例

  Android 混淆代码详解及实例         为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其他地方拷贝一个过来 2. 最重要的就是在proguard-project.txt添加混淆的申明了: a. 把所有你的jar包都申明进来,例如: -libraryjars libs/apns_1