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

使用react-router@6和react-query@5时No QueryClient set错误修复咨询

修复React Query 5中"No QueryClient set"错误的步骤

这个错误的核心原因是:你使用useQuery或useQueryClient的组件,没有处于QueryClientProvider的上下文范围内,React Query无法找到对应的QueryClient实例。按以下步骤修复:

  1. 导入并创建QueryClient实例
    在应用的入口文件(比如main.jsx/App.jsx)中,导入React Query的核心模块并实例化QueryClient:
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';

// 创建QueryClient实例,可根据需求配置参数
const queryClient = new QueryClient();
  1. 用QueryClientProvider包裹整个路由/应用
    因为你使用了react-router@6,需要把QueryClientProvider放在路由的最外层,确保所有路由组件都能访问到QueryClient上下文:
// 导入路由相关模块
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import Home from './pages/Home';

// 渲染应用时用Provider包裹路由
ReactDOM.createRoot(document.getElementById('root')).render(
  <QueryClientProvider client={queryClient}>
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        {/* 其他路由组件 */}
      </Routes>
    </BrowserRouter>
  </QueryClientProvider>
);
  1. 验证组件使用范围
    确保所有调用useQuery/useQueryClient的组件,都在QueryClientProvider的包裹范围内,不要在Provider外部的组件中使用这些钩子。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:03:11