过滤器 filters
React Query 中的某些方法可以接受 QueryFilters 或者 MutationFilters 对象。
查询过滤器
一个查询的过滤器是具有特定条件的对象,可将查询与以下各项进行匹配:
JavaScript
1// 取消所有查询2await queryClient.cancelQueries();3 4// 删除所有以`posts`开头的键值的非活动查询5queryClient.removeQueries("posts", { inactive: true });6 7// 重新获取所有活动查询8await queryClient.refetchQueries({ active: true });9 10// 重新获取键中以`posts`开头的所有活动查询11await queryClient.refetchQueries("posts", { active: true });查询过滤器对象支持以下属性:
exact?: boolean- 如果您不想对键值做模糊查询(search queries inclusively),则可以传递
exact: true选项,选项来返回且只返回完整匹配的
- 如果您不想对键值做模糊查询(search queries inclusively),则可以传递
active?: boolean- 当设置为
true时,它将匹配活动查询 - 当设置为
false时,它将匹配非活动查询
- 当设置为
inactive?: boolean- 当设置为
true时,它将匹配非活动查询 - 当设置为
false时,它将匹配活动查询
- 当设置为
stale?: boolean- 设置为
true时,它将匹配过时(staled)的 - 设置为
false时,它将匹配没过时(fresh)的
- 设置为
fetching?: boolean- 设置为
true时,它将匹配当前正在获取的 - 设置为
false时,它将匹配当前未在获取的
- 设置为
predicate?: (query: Query) => boolean- 对于缓存中的每个查询,都会调用此函数,并且对于匹配(found)的查询,该函数返回
true
- 对于缓存中的每个查询,都会调用此函数,并且对于匹配(found)的查询,该函数返回
queryKey?: QueryKey- 设置此属性以定义要匹配的查询键值
修改过滤器
修改的过滤器是具有特定条件的对象,可将修改与以下条件进行匹配:
JavaScript
1// 获取所有正在获取的修改的数量2await queryClient.isMutating();3// 通过 mutationKey 过滤4await queryClient.isMutating({ mutationKey: "post" });5// 使用谓词函数过滤6await queryClient.isMutating({7 predicate: (mutation) => mutation.options.variables?.id === 1,8});修改过滤器对象支持以下属性:
exact?: boolean- 如果您不想对键值做模糊查询,你可以设置
exact: true选项来返回且只返回完整匹配的
- 如果您不想对键值做模糊查询,你可以设置
fetching?: boolean- 设置为
true时,它将匹配当前正在获取的 - 设置为
false时,它将匹配当前未在获取的
- 设置为
predicate?: (mutation: Mutation) => boolean- 对于缓存中的每个修改,都会调用此函数,并且对于匹配(found)的修改,该函数返回
true
- 对于缓存中的每个修改,都会调用此函数,并且对于匹配(found)的修改,该函数返回
mutationKey?: MutationKey- 设置此属性以定义要匹配的修改键值