译零 TransZero · TanStack Query v3 中文文档
主站

过滤器 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 选项,选项来返回且只返回完整匹配的
  • active?: boolean
    • 当设置为 true 时,它将匹配活动查询
    • 当设置为 false 时,它将匹配非活动查询
  • inactive?: boolean
    • 当设置为 true 时,它将匹配非活动查询
    • 当设置为 false 时,它将匹配活动查询
  • stale?: boolean
    • 设置为 true 时,它将匹配过时(staled)的
    • 设置为 false 时,它将匹配没过时(fresh)的
  • fetching?: boolean
    • 设置为 true 时,它将匹配当前正在获取的
    • 设置为 false 时,它将匹配当前未在获取的
  • predicate?: (query: Query) => boolean
    • 对于缓存中的每个查询,都会调用此函数,并且对于匹配(found)的查询,该函数返回 true
  • 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
  • mutationKey?: MutationKey
    • 设置此属性以定义要匹配的修改键值

本页为 TanStack Query 文档(React 版)的非官方中文翻译,原文由上游团队维护,遵循 MIT 许可。 译文如有偏差,以英文原文为准。

本页译文取自社区中文版 react-query-web-i18n(MIT),非本站翻译,已停止更新,内容可能与当前 API 有出入。

译自上游 (未记录版本)