react-native中AsyncStorage实例详解
发布时间 - 2026-01-11 00:27:22 点击率:次react-native中AsyncStorage实例详解

AsyncStorage是一个简单的,具有异步特性的储存API,它的储存方式为键值对的方式,且对整个App而言,是全局的。
AsyncStorage提供了较全的方法供我们使用,每个方法都有一个回调函数,而回调函数的第一个参数都是错误对象error,所有的方法执行之后都会返回一个Promise对象。
方法:
static getItem(key: string, callback?: ?(error: ?Error, result: ?string) => void) 读取key字段并将结果作为第二个参数传递给callback。如果有任何错误发生,则会传递一个Error对象作为第一个参数。返回一个Promise对象。 static setItem(key: string, value: string, callback?: ?(error: ?Error) => void) 将key字段的值设置成value,并在完成后调用callback函数。如果有任何错误发生,则会传递一个Error对象作为第一个参数。返回一个Promise对象。 static removeItem(key: string, callback?: ?(error: ?Error) => void) 删除一个字段。返回一个Promise对象。 static mergeItem(key: string, value: string, callback?: ?(error: ?Error) => void) 假设已有的值和新的值都是字符串化的JSON,则将两个值合并。返回一个Promise对象。还没有被所有原生实现都支持。 static clear(callback?: ?(error: ?Error) => void) 删除全部的AsyncStorage数据,不论来自什么库或调用者。通常不应该调用这个函数——使用removeItem或者multiRemove来清除你自己的key。返回一个Promise对象。 static getAllKeys(callback?: ?(error: ?Error, keys: ?Array<string>) => void) 获取所有本应用可以访问到的数据,不论来自什么库或调用者。返回一个Promise对象。 static flushGetRequests() 清除所有进行中的查询操作。 static multiGet(keys: Array<string>, callback?: ?(errors: ?Array<Error>, result: ?Array<Array<string>>) => void) 获取keys所包含的所有字段的值,调用callback回调函数时返回一个key-value数组形式的数组。返回一个Promise对象。 multiGet(['k1', 'k2'], cb) -> cb([['k1', 'val1'], ['k2', 'val2']]) static multiSet(keyValuePairs: Array<Array<string>>, callback?: ?(errors: ?Array<Error>) => void) multiSet和multiMerge都接受一个与multiGet输出值一致的key-value数组的数组。返回一个Promise对象。 multiSet([['k1', 'val1'], ['k2', 'val2']], cb); static multiRemove(keys: Array<string>, callback?: ?(errors: ?Array<Error>) => void) 删除所有键在keys数组中的数据。返回一个Promise对象。 static multiMerge(keyValuePairs: Array<Array<string>>, callback?: ?(errors: ?Array<Error>) => void) 将多个输入的值和已有的值合并,要求都是字符串化的JSON。返回一个Promise对象。 还没有被所有原生实现都支持。
小例子:
import React from 'react';
import {View,StyleSheet,Text,AsyncStorage} from 'react-native';
export default class Root extends React.Component{
constructor(props){
super(props);
this.set = this.set.bind(this);
this.get = this.get.bind(this);
this.clear = this.clear.bind(this);
}
//渲染
render(){
return (
<View style = {style.container}>
<Text onPress = {this.set}>储存数据</Text>
<Text style = {{marginTop: 10}} onPress = {this.get}>
获取数据
</Text>
<Text style = {{marginTop: 10}} onPress = {this.clear}>
清除数据
</Text>
</View>
);
}
set(){
AsyncStorage.setItem('name','gefufeng',(error) => {
if (error) {
alert("储存失败");
}else{
alert("储存成功");
}
});
}
get(){
AsyncStorage.getItem('name',(error,result) => {
if (error) {
alert("获取失败");
}else{
alert("数据为:" + result);
}
});
}
clear(){
AsyncStorage.removeItem('name',(error) => {
if (!error) {
alert("清除成功");
}
});
}
}
const style = StyleSheet.create({
container : {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
backgroundColor : "#F5FCFF"
}
});
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# react-native中AsyncStorage
# react-native中AsyncStorage详解
# ReactNative (API)AsyncStorage存储详解及实例
# React Native AsyncStorage本地存储工具类
# 都是
# 第一个
# 回调
# 还没有
# 则会
# 自己的
# 是一个
# 有任何
# 都有
# 多个
# 调用者
# 并在
# 希望能
# 第二个
# 并将
# 谢谢大家
# 键值
# 则将
# 设置成
# 所包含
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
实例解析angularjs的filter过滤器
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
香港服务器租用费用高吗?如何避免常见误区?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
焦点电影公司作品,电影焦点结局是什么?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
JavaScript如何实现倒计时_时间函数如何精确控制
Laravel怎么在Blade中安全地输出原始HTML内容
如何在腾讯云免费申请建站?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Laravel观察者模式如何使用_Laravel Model Observer配置
微信小程序 input输入框控件详解及实例(多种示例)
千库网官网入口推荐 千库网设计创意平台入口
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
EditPlus 正则表达式 实战(3)
利用 Google AI 进行 YouTube 视频 SEO 描述优化
如何在阿里云购买域名并搭建网站?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
如何在服务器上三步完成建站并提升流量?
百度浏览器如何管理插件 百度浏览器插件管理方法
Java遍历集合的三种方式
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
如何快速辨别茅台真假?关键步骤解析
怎么用AI帮你为初创公司进行市场定位分析?
如何快速打造个性化非模板自助建站?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
微信h5制作网站有哪些,免费微信H5页面制作工具?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
如何用狗爹虚拟主机快速搭建网站?
微信小程序 canvas开发实例及注意事项
清除minerd进程的简单方法
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Laravel如何集成Inertia.js与Vue/React?(安装配置)
Laravel如何处理和验证JSON类型的数据库字段
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Python3.6正式版新特性预览
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全

