Zarządzanie stanem · Senior · Pytanie 69 z 75
Jak zaktualizować edytowane zadanie we wszystkich buforowanych listach (przefiltrowanych widokach) naraz?
queryClient.setQueriesData({ queryKey: ["todos", "list"] }, (old) =>
old?.map((t) => (t.id === updated.id ? updated : t)));- ✓Poprawna odpowiedź: Użyć
setQueriesDataz prefiksem klucza albo po prostu unieważnić prefiks - 2Wywołać
setQueryDataraz z najkrótszym kluczem - 3Listy nie da się zaktualizować, tylko pobrać ponownie jedna po drugiej
Wyjaśnienie
setQueriesData stosuje funkcję do każdego pasującego zapytania. Unieważnienie jest prostsze, gdy skład listy może się zmienić (np. ukończone zadania wypadają z filtra).