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

react-query引入QueryClientProvider白屏报Hook错误解决方法

问题原因

这个报错对应控制台提示的第三类诱因:依赖版本不兼容导致同个应用内存在多份React副本,Hook调用脱离了合法的函数组件上下文。
你通过npm install react-query安装的是已停止维护的v3版本react-query,这个旧包的peer依赖规则和最新React 18项目的依赖解析逻辑存在冲突,会导致QueryClientProvider组件内部调用useEffect等hooks时,无法匹配到当前项目运行的React实例上下文,直接抛出Cannot read properties of null (reading 'useEffect')错误,最终页面白屏。

补充说明:react-query从v4版本开始已经正式更名为@tanstack/react-query,旧npm包名react-query停更在v3.39.2版本,不再适配新的React大版本更新。

你原来编写的QueryClient实例化、Provider包裹的逻辑本身没有语法问题,不需要调整其他业务代码。

修复步骤

按顺序执行以下操作即可解决问题:

  • 卸载旧版本不兼容的包
    npm uninstall react-query
    
  • 安装官方持续维护的TanStack Query版本(兼容React 18)
    npm install @tanstack/react-query
    
  • 修改index.js文件中的导入语句,把原来从旧包导入的代码替换为新包导入:
    // 注释/删除旧导入
    // import {  QueryClient, QueryClientProvider} from 'react-query';
    // 替换为新导入
    import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
    
  • 如果执行完上述步骤后仍报相同错误,删除项目下的node_modules文件夹和package-lock.json文件,重新执行npm install全量安装依赖,清除之前的依赖缓存残留即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:30:28