react native之使用AsyncStorage 进行数据持久化存储
新建AsncStorageDemoPage.js
import React, {Component} from 'react';
import {
StyleSheet,
View,
Text,
Button,
TextInput,
AsyncStorage,
} from 'react-native'; const KEY="save_key";
export default class AsncStorageDemoPage extends Component {
constructor(props){
super(props);
this.state={
showText:''
}
} render(){
const {navigation} = this.props; return (
<View style={styles.container}>
<Text>'FetchDemoPage'</Text> <TextInput
style={styles.input}
onChangeText={text => {
this.value = text;
}}
/> <View style={styles.input_container}>
<Text onPress={()=>{
this.doSave();
}}>存储
</Text> <Text onPress={()=>{
this.doRemove();
}}>删除
</Text> <Text onPress={()=>{
this.getData();
}}>读取
</Text> </View> <Text>
{this.state.showText}
</Text> </View>
);
} doSave(){
//方式1
AsyncStorage.setItem(KEY,this.value,error=>{
error && console.log(error.toString());
});
// //方式2
// AsyncStorage.setItem(KEY,this.value)
// .catch(error=>{
// error && console.log(error.toString());
// });
// //方式3
// try{
// await AsyncStorage.setItem(KEY,this.value);
// }
// catch(error){
// error && console.log(error.toString());
// }
} doRemove(){
//方式1
AsyncStorage.removeItem(KEY,error=>{
error && console.log(error.toString());
}); // //方式2
// AsyncStorage.removeItem(KEY)
// .catch(error=>{
// error && console.log(error.toString());
// });
// //方式3
// try{
// await AsyncStorage.removeItem(KEY);
// }
// catch (error){
// error && console.log(error.toString());
// } } getData(){
//方式1
AsyncStorage.getItem(KEY,(error,value)=>{
this.setState({
showText:value
});
console.log(value);
error && console.log(error.toString);
}); // //方式2
// AsyncStorage.getItem(KEY)
// .then(value=>{
// this.setState({
// showText:value
// });
// console.log(value);
// })
// .catch(error=>{
// error && console.log(error.toString);
// })
// //方式3
// try{
// const value = await AsyncStorage.getItem(KEY);
// this.setState({
// showText:value
// });
// console.log(value);
// }
// catch(error){
// error && console.log(error.toString());
// } } } const styles = StyleSheet.create({
container:{
flex: 1,
backgroundColor:'#F5FCFF', },
text:{
fontSize: 20,
textAlign: 'center',
margin: 10,
},
input:{
height: 30,
//flex: 1,
borderColor: 'black',
borderWidth: 1,
marginRight: 10,
},
input_container:{
flexDirection: 'row',
justifyContent: 'center',
justifyContent: 'space-around',
}
});
react native之使用AsyncStorage 进行数据持久化存储的更多相关文章
- iOS数据持久化存储:归档
在平时的iOS开发中,我们经常用到的数据持久化存储方式大概主要有:NSUserDefaults(plist),文件,数据库,归档..前三种比较经常用到,第四种归档我个人感觉用的还是比较少的,恰恰因为用 ...
- iOS开发——数据持久化Swift篇&使用Core Data进行数据持久化存储
使用Core Data进行数据持久化存储 一,Core Data介绍 1,Core Data是iOS5之后才出现的一个数据持久化存储框架,它提供了对象-关系映射(ORM)的功能,即能够将对象转化成 ...
- Swift - 使用Core Data进行数据持久化存储
一,Core Data介绍 1,Core Data是iOS5之后才出现的一个数据持久化存储框架,它提供了对象-关系映射(ORM)的功能,即能够将对象转化成数据,也能够将保存在数据库中的数据还原成对象. ...
- vuex数据持久化存储
想想好还是说下vuex数据的持久化存储吧.依稀还记得在做第一个vue项目时,由于刚刚使用vue,对vue的一些基本概念只是有一个简单的了解.当涉及到非父子组件之间通信时,选择了vuex.只是后来竟然发 ...
- [Xcode 实际操作]七、文件与数据-(14)数据持久化存储框架CoreData的使用:删除CoreData中的数据
目录:[Swift]Xcode实际操作 本文将演示如何删除数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...
- [Xcode 实际操作]七、文件与数据-(13)数据持久化存储框架CoreData的使用:编辑CoreData中的数据
目录:[Swift]Xcode实际操作 本文将演示如何修改数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...
- [Xcode 实际操作]七、文件与数据-(12)数据持久化存储框架CoreData的使用:查找CoreData中的数据
目录:[Swift]Xcode实际操作 本文将演示如何查找数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...
- [Xcode 实际操作]七、文件与数据-(11)数据持久化存储框架CoreData的使用:创建CoreData实体并插入数据
目录:[Swift]Xcode实际操作 本文将演示[CoreData]数据持久化存储框架的使用. 点击[Create a new Xcode project]创建一个新的项目 ->[Single ...
- 转载 -- iOS数据持久化存储
作者:@翁呀伟呀 授权本站转载 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方 ...
随机推荐
- ERROR 1045 (28000): Access denied for user 'xxx'@'localhost' (using password: YES)
# Bug描述 今天周末,在家里学点新技术,虽然公司分配的任务没有完成(滑稽滑稽) 我先创建了一个mysql数据库,用root用户创建一个新用户,毕竟项目中使用root是非常危险的,尤其是我这样的实 ...
- 【Qt开发】Qt测试计算时间
方法1 利用QTime,其精度为ms级 </pre><pre code_snippet_id="1852215" snippet_file_name=" ...
- Golang中的error类型
Golang中的error类型 error类型本身就是一个预定义好的接口,里面定义了一个method type error interface { Error() string } 生成一个新的err ...
- react-native的技巧
按钮定制 給图片添加点击事件 <TouchableOpacity onPress={this.lookAlbum} style={{flex: 0, height: 40, width: 40, ...
- linux文件属性软链接
linux里的软链接 相当于windows系统中的快捷方式 软链接总结: 1.删除源文件,软链接文件依然存在,但是无法访问指向源文件路径内容. 2.失效时候一般是白字红底闪烁显示. test -> ...
- python 元组及操作
# 元组是'不可变'的 list 使用小括号 创建后不允许修改 # 创建# t = ('a','b','c',1,2,3)# print(t)# print(type(t))# # 3# print( ...
- 什么场景下用redis而不用mysql?
redis我们用作缓存,对查询速度要求比较高的应用场景比较适合.对有复杂逻辑关系的存储不适合. mysql是硬盘存储的,在高性能io要求的项目里不能满足需求,而redis所有数据存在内存里,因此要快得 ...
- SCUT - 161 - 灯游 - 数学
https://scut.online/p/161 很显然一个数被开关的概率是他的因子的个数的占比. 然后又很显然其实这个总的概率就是一个二项式求和. 模拟这个过程WA了8发.正常,毕竟浮点误差累积比 ...
- winform 窗体间传值
WinForm 两窗体之间传值实例 2010-12-27 22:10:11| 分类: 学业|举报|字号 订阅 下载LOFTER我的照片书 | 窗体Form1和Form2 Form2 ...
- myeclipse2014下卸载,安装maven插件。
转自:https://blog.csdn.net/gaoshang10/article/details/21177893 一.卸载方法: 点击Help->About Myeclipse Ente ...