React Native の AsyncStrage が Deprecated となっているので、別のパッケージに変更する
タイトルの通りです。
React Native に含まれている AsyncStrage
が、少し前からDeprecatedとなっていました。
すぐに使えなくなるわけではないようですが、別のものに交換するよう勧められていたので対応を行いました。
https://reactnative.dev/docs/asyncstorage
データ保存の実装についてはパッケージを交換しても問題ないですが、パッケージの変更に伴いデータが初期化されたりするのだろうかと懸念していました。 結論、データの初期化とかは発生せず、平和に移行できました。
以下対応内容です。
対応
対応は簡単で、コミュニティで開発されている代替となるパッケージに交換するだけです。全く同じように使えるものがあったので、そちらを選択しました。 以下のページで代替となるパッケージを探します。
https://reactnative.directory/?search=storage
今回は@react-native-async-storage/async-storage
を選択しました。
いろんな環境に対応している様子です。さらに、もともとのコンポーネントと同様の使い方ができます。
https://github.com/react-native-async-storage/async-storage
以下のドキュメントに従ってインストールを行い、該当箇所のパッケージの呼び出し元を変更していくだけです。
https://react-native-async-storage.github.io/async-storage/docs/install/
インストール
npm install @react-native-async-storage/async-storage
使い方
使いかたはもともとの React Native の AsyncStrage と同様です。単純にキーを指定して文字列を書き込み・読み出しできます。
import AsyncStorage from '@react-native-async-storage/async-storage';
~~~
await AsyncStorage.setItem("key", value);
const item = await AsyncStorage.getItem("key");
おわりに
AsyncStrage はあまり複雑なことができませんが、単純なデータを保存するのみであれば便利に使えます。 いずれ利用できなくなる様子なので早いうちにコミュニティで開発されているパッケージへの移動を対応しておきましょう。
今回パッケージを変更しましたが、実際に保存されているデータのパス・キーなどは変わらなかった様子で、データが初期化されるといった現象はありませんでした。 懸念していた部分も問題なかったのでよかったです。