@amazon-devices/react-native-fast-imageライブラリは、パフォーマンスに優れたReact Native画像コンポーネントを提供するreact-native-fast-image(英語のみ)をVegaでサポートします。
React NativeのImageコンポーネントでは、ブラウザとほとんど同じような画像キャッシュの処理が行われます。サーバーから画像に対して適切なキャッシュ制御ヘッダーが返されると、通常、ブラウザと同様の組み込みのキャッシュ動作を得ることができます。それでも、多くの人が次のような問題を経験しています。
- ちらつき
- キャッシュの失敗
- キャッシュからの読み込みパフォーマンスが低い
- 全般的なパフォーマンスが低い
FastImageはImageを置き換えるもので、ウェブ以外のプラットフォームでこれらの問題を解決します。
このライブラリはアプリにデプロイされ、別途インストールプロセスを必要とすることなくVega向けReact Nativeアプリで利用できます。ライブラリは自動リンクされており、アプリは実行時にリンクします。このライブラリは、ライブラリがターゲットとしているVega向けReact Nativeのバージョンとのみ互換性が保証されます。
アプリのVega向けReact Nativeのバージョンをアップレベルするときは、ベストプラクティスとして、ライブラリの依存関係をアップレベルすることを検討してください。
このライブラリの情報、APIリファレンス、その他の詳細については、元のライブラリのドキュメントである README.md(英語のみ)を参照してください。
インストール
package.jsonファイルにJavaScriptライブラリの依存関係を追加します。該当するReact Nativeバージョンのタブを選択してください。
- React Native 0.72
- React Native 0.83
npm installコマンドを使用して、依存関係を再インストールします。
例
APIリファレンス
コンポーネントAPI
メソッド
Vegaでの例外
Vega向けReact Nativeライブラリには、APIサポートに関していくつかの例外があります。以下の機能はVegaプラットフォームではサポートされていません。source.headerssource.cachetintColordefaultSourceonFastImageProgress(依存関係のImage.onProgressに問題があります。)
下位互換性の問題
v0.12リリース以降のOSには、amzn/react-native-fast-image(npmパッケージ)バージョンとの互換性がありません。
古いバージョンのnpmパッケージに対してビルドされたアプリをv0.12+のOSで実行すると、起動時に次のクラッシュが発生します。
Volta:Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'FastImageTurboModule' could not be found. Verify that a module by this name is registered in the native binary.
このクラッシュを回避するには、@amazon-devices/react-native-fast-imageの最新バージョンに対してアプリを再度ビルドする必要があります。
-
アプリの
package.jsonに古いバージョンのfast-imageがハードコードされていないことを確認します。 アプリが最新のパッチを取得できるように、SemVerバージョン^3.0.0を使用してください。 -
package-lock.jsonを削除して、ロックされているfast-imageバージョンが削除されるようにします。package-lock.jsonがほかの依存関係のロックにも使用されている場合は、このファイルから手動で@amazon-devices/react-native-fast-imageのエントリを削除することもできます。 -
node_modulesフォルダを削除して、npmでキャッシュされている古いバージョンが取得されないようにます。 - 再ビルドします。

