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

React-Query自定义Hook中refetchOnWindowFocus配置位置咨询

React-Query中refetchOnWindowFocus配置的正确位置

你把refetchOnWindowFocus: false放在查询键数组里是错误的——查询键的作用是唯一标识查询、决定何时触发重取,React-Query不会识别数组内的配置项,所以窗口切换时仍会执行默认的重取逻辑。

正确的做法是把该配置作为第三个参数传入useQuery,也就是单独的配置对象中:

const useFetchOverview = () => {
    return useQuery(
        ["userData"], // 仅保留查询标识相关内容
        async () => {
            const { data } = await axios({
                url: useFetchOverviewUrl,
                headers: { ...getHeaders(reduxState) },
                method: "get"
            });
            return data;
        },
        { refetchOnWindowFocus: false } // 配置项放在第三个参数的对象中
    );
};

调整后该配置即可生效,窗口切换时不会自动重取数据。补充说明下useQuery的参数结构:

  • 第一个参数:查询键(数组/字符串,用于缓存管理和重取触发判断)
  • 第二个参数:异步查询函数(处理数据获取逻辑)
  • 第三个参数:可选配置对象,包含refetchOnWindowFocus、staleTime、cacheTime等所有查询相关配置

内容的提问来源于stack exchange,提问作者boogiehsows

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:01:04