zoukankan      html  css  js  c++  java
  • 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',
      }
    });
    View Code

    此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935. 我的gitHub: (学习代码都在gitHub) https://github.com/nwgdegitHub/
  • 相关阅读:
    Java并发(5)- ReentrantLock与AQS
    Java并发(4)- synchronized与CAS
    Windows cmd 查看文件MD5 SHA1 SHA256
    进程、线程、协程概念理解
    Python学习--Python运算符
    Python学习--Python变量类型
    MySQL性能优化
    Docket学习--Docker入门
    Python学习--Python基础语法
    Python学习--Python 环境搭建
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/11571849.html
Copyright © 2011-2022 走看看