앱을 껐다가 다시 켜면 데이터가 남아있어야만 지속해서 앱을 사용할 수 있다.

React-native에서는 간단한 데이터를 저장할 수 있는 방법을 몇 가지 제공하는데,

가장 간단한 AsyncStorage 사용법을 정리해본다.

AsyncStorage에서 중요한 것!!!
 - setItem : 저장하기 -> 무조건 string 으로만 저장 가능
 - getItem : 가져오기
 - Key값을 함께 저장해서, 해당하는 Key의 value 값을 가져오는 방식

1. 공식 사이트 소개

https://react-native-async-storage.github.io/async-storage/docs/install

 

Installation | Async Storage

Install

react-native-async-storage.github.io

2. 인스톨 

expo cli로 설치를 했더니 이상한 에러가 발생했다. 

npm이나 Yarn을 사용해서 설치하는 것을 추천한다.

npm install @react-native-async-storage/async-storage
yarn add @react-native-async-storage/async-storage

3. 사용법

(1) 우선 라이브러리를 불러온다.

import AsyncStorage from '@react-native-async-storage/async-storage';

(2) 일단 저장해본다. string 데이터는 그냥 저장하면 되는데, 배열 데이터와 같은 object 파일은 다음과 같이 저장해줘야 한다.

(그리고, 간혹 useEffect와 같은 훅 안에서 async를 사용할 수 없는 경우가 있다. 그럴 땐, 외부에서 함수를 하나 만들어서 useEffect 같은 훅 안에 넣으면 작동된다.)

const storeData = async (value) => {
  try {
    const jsonValue = JSON.stringify(value);
    await AsyncStorage.setItem('my-key', jsonValue);
  } catch (e) {
    // saving error
  }
};

(3) 불러온다. 마찬가지로 object 파일의 경우, JSON.parse를 사용해서 변환해서 가져온다. 

const getData = async () => {
  try {
    const jsonValue = await AsyncStorage.getItem('my-key');
    return jsonValue != null ? JSON.parse(jsonValue) : null;
  } catch (e) {
    // error reading value
  }
};

일반적으로 데이터 추가, 삭제, 업데이트 함수 등에는 setItem을 사용하고,

useEffect의 didmount 기능을 사용하여 초기에 저장된 값을 getItem을 사용하여 불러온다.

이런 흐름으로 코드를 짜면 된다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기