Керування станом · Senior · Запитання 69 з 75
Як оновити відредаговану задачу в усіх закешованих списках (відфільтрованих представленнях) одразу?
queryClient.setQueriesData({ queryKey: ["todos", "list"] }, (old) =>
old?.map((t) => (t.id === updated.id ? updated : t)));- ✓Правильна відповідь: Використати
setQueriesDataіз префіксом ключа або просто інвалідувати префікс - 2Викликати
setQueryDataодин раз із найкоротшим ключем - 3Списки не можна оновити, лише перезапитати по одному
Пояснення
setQueriesData застосовує функцію до кожного відповідного запиту. Інвалідація простіша, коли склад списку може змінитися (наприклад, виконані задачі випадають із фільтра).