2016-11-21 7 views
7

RN Image.prefetchはどのように機能するのですか?私はドキュメントとサンプルを読んだことがありますが、私はそれを得ることはできません。私はいくつかの他にどこにそれを使用したいときに我々は、一度画像をプリフェッチネイティブImage.prefetchがどのように反応しますか?

  1. は、それは、自動的にキャッシュからロードされますか、私は手動でいくつかのチェックを行う必要がありますか?

  2. Image.prefetchメソッドに電話する必要がある場合:画像をレンダリングする前に、たとえばコールバックで画像をロードした後、ドキュメントの例に示すように?

ご回答いただきありがとうございます。

答えて

4

docsで与えられた例は混乱しているように見えますが、実際はかなり簡単です。イメージを先読みし、表示するときはいつものようにImageコンポーネントを使用します。 たとえば、一部の初期シーンでは、すべてのイメージをプリフェッチしている間にActivityIndicatorを表示できます。プリフェッチなしのイメージを表示するだけで完了します。

は、あなたの質問に答えるために:

  1. 画像が自動キャッシュからロードされますが、手作業によるチェックは必要ありません。プリフェッチしたシーンをアンマウント/マウントしないでください。イメージが再び読み込まれるようになります。
  2. イメージレンダリングの前に、イメージをレンダリングするシーンがレンダリングされる前に、イメージがレンダリングされる前のシーンがあります。 onLoadEndを使用して、次のシーンをいつ表示するかを知ることができます。プリフェッチを行うにはcomponentWillMountを使用してもかまいません。プリフェッチが完了してからレンダリングが完了したら、ActivityIndicatorのようなものをレンダリングしてください。

希望します。

+1

ありがとうございました!それははるかに明確になる – Ilyoff

+0

画像コンポーネントをアンマウントすると破棄されますか?つまり、イメージAを複数のページに表示したいのであれば、ディスクキャッシュからではなく、レンダリングされるたびにフェッチします。 – Dave

+1

イメージコンポーネントがアンマウントされていると私は捨てられているとは言いませんでした。私が悲しいことは、あなたがプリフェッチしたコンポーネントがアンマウントされていると破棄されるということです。イメージが使用される同じコンポーネントでプリフェッチを行う必要はありません。 –

関連する問題