【React Native】「react-native-storage」ライブラリの導入

React Native でアプリを開発中、データベースに保存するほどでもないちょっとしたデータを保持しておきたいことがあると思います。
そんな時、以前は AsyncStorage を使用していたのですが、こちらを使うと文字列のみしか保存できないので少々不便に感じることも…。
で、今回新しいアプリを開発することになったので、これを機に「react-native-storage」ライブラリを導入してみたのですが、これがとっても便利でした…!

公式の GitHub はこちら。

GitHub – sunnylqm/react-native-storage: local storage wrapper for both react-native and browser. Support size controlling, auto expiring, remote data auto syncing and getting batch data in one query.
https://github.com/sunnylqm/react-native-storage

 

導入手順ですが、まず必要なライブラリをインストールします。

npm install @react-native-async-storage/async-storage react-native-storage --save

なお、上記サイトでは @react-native-community/async-storage をインストールしようとしていましたが、こちらは現在は非推奨となっていましたので、@react-native-async-storage/async-storage に変更しました。

さて、上記ライブラリのインストールが完了したら、Storage.js を下記の内容で作成します。

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

const storage = new Storage({
  storageBackend: AsyncStorage
});

export { storage };

事前準備は以上です!
あとは、AsyncStorage を使用したいタイミングで上記のファイルをインポートすれば使用できます。

使用方法は下記のサンプルコードをご参照ください。

import { storage } from './Storage';

// データの保存
storage.save({ key: AUTH_TOKEN_KEY, data: [キー名] });

// データの取得
storage
  .load({key: [キー名]})
  .then(data => {
    console.log(data);
  })
  .catch(err => console.warn(err))

// データの削除
storage.remove({ key: [キー名] });

AsyncStorage を使用していた時と同じように、問題なくデータの保存・取得・削除を行うことができました。

使ってみた感じとしては、データの型を考慮する必要がなく使用できるのはやはり便利でした!
現時点では文字列データしか保存していないのですが、今後文字列データ以外を扱う可能性もあり、その際にキャストの処理をわざわざ行わなくていいのは楽ですね。
…もっと早くに導入すべきでした…!

 

以上、React Native で AsyncStorage のかわりに「react-native-storage」ライブラリを導入する方法でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG