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

能否将queryFn传入useQuery?上下文获取queryFn的使用疑问

关于useQuery传入queryFn的问题

完全可以给useQuery传入自定义的queryFn,你的思路是成立的,哪怕是你示例里的useDynamicQuery(如果它是基于TanStack Query封装的自定义Hook),这种写法也能正常工作。

需要注意两个细节:

  • 保证fetch的稳定性:你用React.useCallback并把fetch作为依赖项,只要useAppFetch返回的fetch是稳定的(比如内部用useCallback做了包裹),就不会触发不必要的重渲染。
  • queryFn的参数传递:TanStack Query的queryFn默认会接收包含queryKey等属性的对象,如果你需要传递自定义参数,要么确保args能正确传入fetch,要么从queryKey里解构参数(这也是TanStack Query推荐的参数传递方式)。

标准useQuery的写法示例:

const fetch = useAppFetch()
const { data } = useQuery({
  queryKey: ['custom-query', args],
  queryFn: React.useCallback(() => fetch(args), [fetch, args])
})

你给出的useDynamicQuery示例写法没有问题,只要这个自定义Hook内部正确处理了传入的queryFn配置,就能正常执行请求逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:22:01