TanStack Query 中的某些方法接受 QueryFilters 或 MutationFilters 物件。
查詢過濾器 (Query Filters) 是一個包含特定條件的物件,用來匹配查詢:
// 取消所有查詢
await queryClient.cancelQueries()
// 移除所有 key 以 `posts` 開頭的非活躍查詢
queryClient.removeQueries({ queryKey: ['posts'], type: 'inactive' })
// 重新取得所有活躍查詢的資料
await queryClient.refetchQueries({ type: 'active' })
// 重新取得所有 key 以 `posts` 開頭的活躍查詢資料
await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })
// 取消所有查詢
await queryClient.cancelQueries()
// 移除所有 key 以 `posts` 開頭的非活躍查詢
queryClient.removeQueries({ queryKey: ['posts'], type: 'inactive' })
// 重新取得所有活躍查詢的資料
await queryClient.refetchQueries({ type: 'active' })
// 重新取得所有 key 以 `posts` 開頭的活躍查詢資料
await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })
查詢過濾器物件支援以下屬性:
突變過濾器 (Mutation Filters) 是一個包含特定條件的物件,用來匹配突變:
// 取得所有正在執行的突變數量
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)
返回一個布林值,表示突變是否匹配提供的突變過濾器集合。