ExpoのErrorRecoveryモジュールについて


ExpoのErrorRecevoryモジュールについて、ネットで調べても大して情報が載っていなかったのでその調べたメモ。

どういうモジュールなのか

説明を読むと、


Set arbitrary error recovery props. If your project crashes in production as a result of a fatal JS error, Expo will reload your project. If you've set these props, they'll be passed to your reloaded project's initial props under exp.errorRecovery.

(適当訳)

任意のエラー回復プロパティを設定する。プロダクションモードで、JSの致命的エラーでクラッシュすると、Expoはプロジェクトをリロードする。もしエラー回復プロパティが設定されていたら、リロードされたプロジェクトの初期プロパティexp.errorRecoveryの下に、エラー回復プロパティが渡される。


となっていて、調べた感じ実際この通りの動作になっているようです。

デモプロジェクト: https://github.com/mk2/expo-error-handler-demo

※プロダクションビルドでしか動かない(それ以外だとRNの赤画面が出てくる)ので、確認する場合はExpoでのビルドが必要だと思われます。

※Apple Developerアカウントは持っていないので、Androidのみ確認。

使い所

調べていて気づいたのですがErrorRecoveryを使わなくてもexp.lastErrorにクラッシュ時のエラーが入っています。なので、エラー自体の情報を設定するというよりは再起動した際になんらかの方法で処理を回復・継続させるための情報の保存に使うと有効?かもしれません。