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
相关产品推荐
相关产品推荐

