1

apollo docsは、ページネーション ロジックを実装するときに、フィールド ポリシーにマージ機能を実装する方法を提案しています。

merge(existing = [], incoming) {
  return [...existing, ...incoming];
}

ただし、クエリに「キャッシュとネットワーク」のフェッチ ポリシーを使用すると、最初にキャッシュからデータが読み込まれ、次にネットワークに出て、既存のリストに受信データが追加されることを意味します。受信データが以前にキャッシュにあったものと同じである場合、項目はキャッシュに 2 回存在します。

これを解決する正しい方法は何ですか?マージ機能で初期ロードと fetchmore リクエストを区別できますか? マージ機能は、キャッシュからロードしたものを上書きする必要がある初期フェッチと、ページネーション フェッチとでは明らかに異なる動作をするはずです。

4

0 に答える 0