Some methods within TanStack Query accept a QueryFilters
or MutationFilters
object.
Query Filters
A query filter is an object with certain conditions to match a query with:
// Cancel all queriesawait queryClient.cancelQueries()
// Remove all inactive queries that begin with `posts` in the keyqueryClient.removeQueries({ queryKey: ['posts'], type: 'inactive' })
// Refetch all active queriesawait queryClient.refetchQueries({ type: 'active' })
// Refetch all active queries that begin with `posts` in the keyawait queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })
A query filter object supports the following properties:
queryKey?: QueryKey
exact?: boolean
exact: true
option to return only the query with the exact query key you have passed.type?: 'active' | 'inactive' | 'all'
all
active
it will match active queries.inactive
it will match inactive queries.stale?: boolean
true
it will match stale queries.false
it will match fresh queries.fetchStatus?: FetchStatus
fetching
it will match queries that are currently fetching.paused
it will match queries that wanted to fetch, but have been paused
.idle
it will match queries that are not fetching.predicate?: (query: Query) => boolean
Mutation Filters
A mutation filter is an object with certain conditions to match a mutation with:
// Get the number of all fetching mutationsawait queryClient.isMutating()
// Filter mutations by mutationKeyawait queryClient.isMutating({ mutationKey: ["post"] })
// Filter mutations using a predicate functionawait queryClient.isMutating({ predicate: (mutation) => mutation.options.variables?.id === 1,})
A mutation filter object supports the following properties:
mutationKey?: MutationKey
exact?: boolean
exact: true
option to return only the mutation with the exact mutation key you have passed.fetching?: boolean
true
it will match mutations that are currently fetching.false
it will match mutations that are not fetching.predicate?: (mutation: Mutation) => boolean
“This course is the best way to learn how to use React Query in real-world applications.”—Tanner LinsleyCheck it out