invalidateQueries
는 캐시된 쿼리를 stale(오래된) 상태로 표시하며, **활성 상태(active)**인 경우에는 **즉시 백그라운드에서 재요청(fetch)**을 수행합니다 github.com+15tanstack.com+15tanstack.com+15.
queryClient.invalidateQueries({ queryKey: ['todos'] })
// 'todos' 또는 'todos', 어떤 추가 파라미터 키까지 모두 stale 상태가 됩니다.
exact: true
옵션을 쓰면 queryKey가 완전히 일치할 때만 무효화합니다 tanstack.com+8tanstack.com+8tanstack.com+8.
queryClient.invalidateQueries({
queryKey: ['event-info', String(eventId)],
exact: true
})
queryClient.invalidateQueries(['search-list'])
queryClient.invalidateQueries(['user-favorites'])
queryClient.invalidateQueries(['event-info', String(eventId)])
queryClient.invalidateQueries({
predicate: (query) =>
['search-list', 'user-favorites', 'event-info0'].includes(query.queryKey[0])
})
└ 이름만 기준으로 여러 키를 한번에 필터 처리 .
React Query 공식 예제에서 자주 나타나는 패턴입니다 tanstack.com+10tanstack.com+10tanstack.com+10:
useMutation({
mutationFn: addTodo,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['todos'] })
queryClient.invalidateQueries({ queryKey: ['reminders'] })
}