22-03-02 개발일기

Posted by : at

Category : Development


AsyncStorage

준비물

  • react-native
  • npm install –save @react-native-community/async-storage

Code

Part.import

import React from 'react';
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
import AsyncStorage from '@react-native-community/async-storage';

Part.variable

Part.app

function App() {
    setItemStorage = async (key, value) => {
        try {
            await AsyncStorage.setItem(key,value);
        } catch (error) {
            // Error save data
            console.log("save data error")
        }
    };
    removeItemStorage = async (key) => {
        try {
            await AsyncStorage.removeItem(key);
        } catch (error) {
            // Error remove data
            console.log("remove data error")
        }
    };
    getItemStorage = async (key) => {
        try {
            const value = await AsyncStorage.getItem(key);
            if (value!==null) {
                return value
            } else {
                console.log("read data error")
            }
        } catch (error) {
            // Error read data
            console.log("read data error")
        }
    };

    saveStorage = () => {
        this.setItemStorage("LOGIN", JSON.stringify({id:"id01", pw:"pw01"}))
    }
    readStorage = () => {
        this.getItemStorage("LOGIN").then(result => {
            const jsonObject = JSON.parse(result)
            alert("username : "+jsonObject.id+" password : "+jsonObject.pw)
        })
    }
    removeStorage = () => {
        this.removeItemStorage("LOGIN")
    }
    const {container, btnStyle, txtStyle} = styles;
    return (
        <View style={container}>
            <TouchableOpacity style={btnStyle} onPress={this.saveStorage}>
                <Text style={txtStyle}>Save Data</Text>
            </TouchableOpacity>
            <TouchableOpacity style={btnStyle} onPress={this.readStorage}>
                <Text style={txtStyle}>Read Data</Text>
            </TouchableOpacity>
            <TouchableOpacity style={btnStyle} onPress={this.removeStorage}>
                <Text style={txtStyle}>Remove Data</Text>
            </TouchableOpacity>
        </View>
    );
}

Part.style

const styles = StyleSheet.create({
    container:{
        flex:1,
        justifyContent:'center',
        alignItems:'center'
    },
    btnStyle:{
        backgroundColor:'#7f7fff',
        justifyContent:'center',
        height:50,
        width:100,
        marginTop:10,
        alignItems:'center'
    },
    txtStyle:{
        color:'#fff'
    }
})

TIL

JSON

JSON.stringify({id:"id01", pw:"pw01"})
const jsonObject = JSON.parse(result)
  • JSON 형식으로 Read/Write 할 때 JSON.stringify/JSON.parse가 사용된다.

AsyncStorage

import AsyncStorage from '@react-native-community/async-storage';
  • Android의 경우 react-native에 기본 탑재된 async-storage를 사용할 수 있지만 ios의 경우 @react-native-community/async-storage를 설치해야 하는 것 같다.
  • 용도는 알다시피 LocalStorage처럼 사용된다.

Result


About GJ

안녕하세요 방문해주셔서 감사합니다. 혹시 보시면서 궁금하신것 있으시면 https://open.kakao.com/o/sivaz71c로 연락주세용~

Star
Useful Links