当前位置: 首页 > news >正文

React Native数据存储

最近做RN开发中需要数据存储,查阅RN官方资料,发现推荐我们使用 AsyncStorage,对使用步骤做一下记录。

AsyncStorage是什么

  • 简单的,异步的,持久化的key-value存储系统
  • AsyncStorage在IOS下存储分为两种情况:
    • 存储内容较小,AsyncStorage会存储在序列化的字典中
    • 存储内容大,AsyncStorage会将数据单独存储在一个文件中
  • AsyncStorage在Android下,会将数据存储在SQLite或者RocksDB中,具体存储在哪里取决于设备支持哪一种方式

如何使用

安装
1.with npm:
npm install @react-native-async-storage/async-storage
2.如果是mac系统还需要pod-install一下:
npx pod-install
使用
import AsyncStorage from '@react-native-async-storage/async-storage';

存储数据:

static setItem(key: string, value: string, [callback]: ?(error: ?Error) => void)
async saveData() {//用法一AsyncStorage.setItem(KEY, this.value, error => {error && console.log(error.toString());});//用法二AsyncStorage.setItem(KEY, this.value).catch(error => {error && console.log(error.toString());});//用法三try {await  AsyncStorage.setItem(KEY, this.value);} catch (error) {error && console.log(error.toString());}
}

获取数据:

static getItem(key: string, [callback]: ?(error: ?Error, result: ?string) => void)
async getData() {//用法一AsyncStorage.getItem(KEY, (error, value) => {this.setState({showText: value});console.log(value);error && console.log(error.toString());});//用法二AsyncStorage.getItem(KEY).then(value => {this.setState({showText: value});console.log(value);}).catch(error => {error && console.log(error.toString());});//用法三try {const value = await  AsyncStorage.getItem(KEY);this.setState({showText: value});console.log(value);} catch (error) {error && console.log(error.toString());}
}

删除数据:

static removeItem(key: string, [callback]: ?(error: ?Error) => void)
async removeData() {//用法一AsyncStorage.removeItem(KEY,error => {error && console.log(error.toString());});//用法二AsyncStorage.removeItem(KEY).catch(error => {error && console.log(error.toString());});//用法三try {await  AsyncStorage.removeItem(KEY);} catch (error) {error && console.log(error.toString());}
}
http://www.lryc.cn/news/118803.html

相关文章:

  • 【网络编程】揭开套接字的神秘面纱
  • MySQL 8.0 事务定义和基本操作
  • 项目经理必备:常用的项目管理系统推荐!
  • 【香瓜说职场】信任危机(2022.08.19)
  • 【Rust】Rust学习 第六章枚举和模式匹配
  • Win10安装GPU支持的最新版本的tensorflow
  • 20个Golang自动化DevOps库
  • 【WiFi】WiFi 6E最新支持的国家和频段
  • 如何使用html,包括css,js 画思维导图?有哪些可用的方法?
  • 机器学习---梯度下降代码
  • 【VB6|第23期】原来Jet.OLEDB也可以读取新版.xlsx的Excel文件
  • 通过控制ros节点的启停,软实现人工控制和紧急停止功能的图示
  • 面试热题(滑动窗口最大值)
  • 【代码】表格封装 + 高级查询 + 搜索 +分页器 (极简)
  • ant.design 组件库中的 Tree 组件实现可搜索的树: React+and+ts
  • Linux系统编程之信号(上)
  • 23.Netty源码之内置解码器
  • sigmoid ReLU 等激活函数总结
  • RabbitMQ 消息队列
  • PHP实现在线进制转换器,10进制,2、4、8、16、32进制转换
  • 报错 | Spring报错详解
  • PHP最简单自定义自己的框架数据库封装调用(五)
  • 使用Redis来实现点赞功能的基本思路
  • 【黑马头条之app端文章搜索ES-MongoDB】
  • Nginx安装以及LVS-DR集群搭建
  • 后端开发9.商品类型模块
  • spring框架自带的http工具RestTemplate用法
  • 【flink】Checkpoint expired before completing.
  • 【论文阅读】NoDoze:使用自动来源分类对抗威胁警报疲劳(NDSS-2019)
  • 【ARM64 常见汇编指令学习 16 -- ARM64 SMC 指令】