State Management · Senior · Frage 69 von 75
Wie aktualisiert man ein bearbeitetes Todo in allen gecachten Listen (gefilterte Ansichten) auf einmal?
queryClient.setQueriesData({ queryKey: ["todos", "list"] }, (old) =>
old?.map((t) => (t.id === updated.id ? updated : t)));- 1
setQueriesDatamit einem Key-Präfix nutzen - 2Einmal
setQueryDatamit dem kürzesten Key aufrufen - 3Listen lassen sich nicht aktualisieren, nur einzeln neu laden
Antwort zeigen
Richtige Antwort: setQueriesData mit einem Key-Präfix nutzen
Erklärung
setQueriesData wendet den Updater auf jede passende Query an. Invalidieren ist einfacher, wenn sich die Zugehörigkeit zur Liste ändern kann (z. B. erledigte Todos verlassen einen Filter).