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)));
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).

Zum Weiterlesen

Fehler in der Frage

State Management · Senior · Frage 69

Teste dich selbst

Mach den Test State Management · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen