SuperAPI AI 工具集

tanstack-query-intent-core-cancel-queries-and-consume-a-19e3bf0b

通用与其它

查看项目

更新于 10-16 00:02

技能介绍

用途:该技能面向 TanStack Query 的查询取消场景,帮助在 React 中正确实现请求取消、AbortSignal 传递与取消后的状态处理。

主要能力:

  1. 在 queryFn 中消费 TanStack Query 提供的 signal,使 fetch 等请求可被真正取消。
  2. 使用 queryClient.cancelQueries({ queryKey: ['todos'] }) 按查询键取消。
  3. 在乐观写入前先取消相关查询,避免竞态。
  4. 在嵌套请求中复用同一个 signal,例如先取列表再并发取详情。
  5. 涉及 CancelledError、取消后回滚、fetch 与 axios 取消等主题。

必要用法:queryFn 需接收 { signal } 并传给请求,例如 fetch(/api/todos/${todoId}, { signal });取消时调用 queryClient.cancelQueries({ queryKey: [...] })。

常见错误:忽略 AbortSignal 会导致请求无法取消;误以为组件卸载会自动取消,未消费 signal 的查询仍可能继续并写入缓存;Suspense 钩子存在取消限制,需要取消行为时应改用非 Suspense 的 useQuery。

限制:资料未提供安装命令、版本要求、axios 具体示例及更多平台细节,暂未提供。