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

使用react-query获取数据时出现baseQueue is undefined错误求助

React Query 抛出 'baseQueue is undefined' 错误,相同查询在其他组件正常

以下是几个排查方向和解决办法:

1. 确认组件处于 React Query 上下文范围内

useQuery 必须在 QueryClientProvider 包裹的组件树中使用。虽然其他组件能正常运行,但有可能当前的 GiveOrgAuth 组件被意外放在了 Provider 范围外(比如路由嵌套错误、组件挂载位置不对)。

检查根组件结构,确保 GiveOrgAuth 在 QueryClientProvider 内部:

import { QueryClient, QueryClientProvider } from 'react-query';

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      {/* 所有使用 useQuery 的组件都要放在这里面 */}
      <GiveOrgAuth />
    </QueryClientProvider>
  );
}

2. 检查 React Query 版本是否存在冲突

如果项目中存在多个版本的 react-query 依赖,可能导致上下文不兼容。运行以下命令检查依赖树:

npm ls react-query

如果发现重复依赖,执行清理:

npm dedupe react-query

或者统一安装指定版本,确保所有组件使用相同版本的 React Query。

3. 修复数据访问的安全判断

虽然你判断了 !isLoading && !isError,但 profile 仍可能处于 undefined 状态(比如查询完成但返回数据为空、缓存异常)。同时注意给 map 循环的元素添加唯一 key:

{!isLoading && !isError && profile?.dataSources ? (
  profile.dataSources.map((source) => (
    <Badge key={source} color={dataSourceColorMap[source]}>{source}</Badge>
  ))
) : (
  <></>
)}

4. 清除异常的查询缓存

如果查询键 profile 的缓存处于异常状态,可能导致后续查询报错。可以尝试清除该查询的缓存:

import { useQueryClient } from 'react-query';
import { useEffect } from 'react';

const GiveOrgAuth = () => {
  const queryClient = useQueryClient();
  
  // 组件挂载时清除缓存
  useEffect(() => {
    queryClient.invalidateQueries("profile");
  }, [queryClient]);

  const { data: profile, isLoading, isError } = useQuery("profile", fetchProfile);
  
  // ... 其余代码
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:05:23