TanStack Query 中的部分方法接受 QueryFilters 或 MutationFilters 对象作为参数。
查询过滤器 (Query Filter) 是一个包含特定匹配条件的对象,用于筛选查询:
// 取消所有查询
await queryClient.cancelQueries()
// 移除所有键名以 `posts` 开头的非活跃 (inactive) 查询
queryClient.removeQueries({ queryKey: ['posts'], type: 'inactive' })
// 重新获取所有活跃 (active) 查询
await queryClient.refetchQueries({ type: 'active' })
// 重新获取所有键名以 `posts` 开头的活跃 (active) 查询
await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })
// 取消所有查询
await queryClient.cancelQueries()
// 移除所有键名以 `posts` 开头的非活跃 (inactive) 查询
queryClient.removeQueries({ queryKey: ['posts'], type: 'inactive' })
// 重新获取所有活跃 (active) 查询
await queryClient.refetchQueries({ type: 'active' })
// 重新获取所有键名以 `posts` 开头的活跃 (active) 查询
await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })
查询过滤器对象支持以下属性:
变更过滤器 (Mutation Filter) 是一个包含特定匹配条件的对象,用于筛选变更:
// 获取所有正在获取的变更数量
await queryClient.isMutating()
// 通过变更键 (mutationKey) 筛选变更
await queryClient.isMutating({ mutationKey: ['post'] })
// 使用谓词函数筛选变更
await queryClient.isMutating({
predicate: (mutation) => mutation.state.variables?.id === 1,
})
// 获取所有正在获取的变更数量
await queryClient.isMutating()
// 通过变更键 (mutationKey) 筛选变更
await queryClient.isMutating({ mutationKey: ['post'] })
// 使用谓词函数筛选变更
await queryClient.isMutating({
predicate: (mutation) => mutation.state.variables?.id === 1,
})
变更过滤器对象支持以下属性:
const isMatching = matchQuery(filters, query)
const isMatching = matchQuery(filters, query)
返回一个布尔值,指示查询是否匹配提供的查询过滤器集合。
const isMatching = matchMutation(filters, mutation)
const isMatching = matchMutation(filters, mutation)
返回一个布尔值,指示变更是否匹配提供的变更过滤器集合。