You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TanStack Query中调用invalidateQueries触发的查询未执行配置重试逻辑的问题求助

TanStack Query中调用invalidateQueries触发的查询未执行配置重试逻辑的问题求助

各位大佬好,我最近在使用TanStack Query时遇到一个奇怪的问题,想请教下大家:

我目前通过queryClient的defaultOptions做了全局配置:

  • 查询(queries)设置为最多自动重试3次
  • mutations则通过自定义函数functionToCheckErrorCode判断特定错误码来决定是否重试

大部分场景下这个配置都能正常工作,但最近遇到一个特殊情况:当调用useMutation之后,不管mutation执行成功还是失败,我都会调用invalidateQueries去触发某个useQuery对应的get请求重新获取数据。结果发现,这种情况下如果这个get请求失败了,并没有按照配置的重试逻辑去重试——mutation本身失败时不重试是符合预期的,但被invalidateQueries触发的get请求失败后,完全没执行重试,可正常直接触发useQuery的时候是会按配置重试3次的。

我的queryClient配置代码如下:

export const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      staleTime: 5 * 1000,
      retry: 3,
      throwOnError: true,
      refetchOnMount: false,
      refetchOnWindowFocus: false,
    },
    mutations: {
      retry: () => functionToCheckErrorCode
    },
  }
})

mutation执行后调用invalidate的代码:

queryClient.invalidateQueries({ queryKey: ["getKey"] })

我翻了官方文档但没找到相关说明,难道invalidateQueries触发的查询本来就不会执行重试逻辑吗?有没有办法让它和正常触发useQuery时一样应用重试配置?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 14:04:37