【ReactNative】AsyncStorageを使ってデータを保存・取得する方法
本記事の内容
  • データを保存する方法
  • AsyncStorageの実装方法

について解説していきます。

1. 概要

アプリを作る上で、タスクキルした時に、データが消えないようにデータを保存したい!
と言う時があると思います。「データを保存するとしたらデータベース??でもデータベースは難しそう」と思う方は、少なからずいると思います。
そこでAsyncStorageの登場です。

2. AsyncStorageとは?

AsyncStorageは、 データベースを使わずにスマホのストレージにデータを永続的に保存することが可能 なライブラリです。

公式ドキュメント: AsyncStorage

3. 使い方

AsyncStorageは、
setItem()メソッド でデータを保存し、
getItem()メソッド で保存したデータを取得します。

3.1 import

以下のようにreact-nativeからAsyncStorageをインポートします。

3.2 setItem()メソッド

AsyncStorage.setItem(key, value); を使って、
保存したいデータ(value)をkeyに保存することができます。

ただし、AsyncStorageには、string型(文字列)しか保存できない為、保存処理の前に一処理が必要です。
JSON.stringify({})を使用して、 データ構造をstring型(文字列)に変換してからsetItemで保存します。

3.3 getItem()メソッド

AsyncStorage.getItem(key); を使うことで、
keyに保存してあるデータを呼び出すことができます。
文字列で保存されているため、JSON.parse()を使って、 文字列を元のデータ構造に変換してから値を使います。

3.4 componentDidMount()

いつ、どこで保存したデータを取得すればいいのか分からないと言う方は、componentDidMount()で取得すれば問題ないと思います。
componentDidMount()は、コンポーネントが初めてレンダリングされる時に呼び出される為、
componentDidMount()でgetItem()メソッドを呼び出して、保存していたデータを任意の値に設定することができます。

以下の4.1 サンプルコードを参考にして実装してみてください!

4. 実装例

4.1 サンプルコード

4.2 結果

シミュレータでリロードしても値が変わっていないことが確認できると思います。