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

React-query未发起请求排查:调用/admin/cafes无网络请求

React Query未发起请求排查方案

排查返回值undefined问题时,发现React Query未发起任何请求(Chrome Network标签无/admin/cafes请求记录),相关代码如下:

相关代码

CafesTable.js

const fetchCafes = async () => {
  const res = await apiClient.get("/admin/cafes");
  return res;
};

function CafesTable() {
  const { data, status } = useQuery("cafes", fetchCafes);
  console.log(data);

http-common.js

const token = "Bearer " + Cookies.get("token");

export default axios.create({
  baseURL: `${process.env.REACT_APP_API_ENDPOINT}/api`,
  headers: {
    Authorization: token,
  },
});

可能的原因及解决办法

  • React Query未被Provider包裹
    React Query的useQuery必须在QueryClientProvider的上下文范围内才能生效。如果组件树顶层没配置这个Provider,useQuery完全不会触发请求。
    解决:在App根组件或父组件中添加Provider配置:

    import { QueryClient, QueryClientProvider } from 'react-query';
    
    const queryClient = new QueryClient();
    
    function App() {
      return (
        <QueryClientProvider client={queryClient}>
          <CafesTable />
        </QueryClientProvider>
      );
    }
    
  • token初始化时机错误
    http-common.js里的token是模块加载时直接获取的,如果此时Cookie中还没有token值,会导致Authorization头变成Bearer undefined,axios可能因无效请求头静默失败,不会发起网络请求。
    解决:改用请求拦截器动态获取token,确保每次请求都能拿到最新的Cookie值:

    const apiClient = axios.create({
      baseURL: `${process.env.REACT_APP_API_ENDPOINT}/api`,
    });
    
    apiClient.interceptors.request.use((config) => {
      const token = Cookies.get("token");
      if (token) {
        config.headers.Authorization = `Bearer ${token}`;
      }
      return config;
    });
    
    export default apiClient;
    
  • React Query配置了禁用自动请求
    检查useQuery是否加了enabled: false配置,这会直接阻止请求自动触发。如果是需要手动触发的场景,要确保触发条件正确。
    解决:移除不必要的enabled: false,或者根据业务逻辑动态设置:

    // 错误示例:
    // const { data, status } = useQuery("cafes", fetchCafes, { enabled: false });
    // 正确写法(无禁用配置):
    const { data, status } = useQuery("cafes", fetchCafes);
    
  • 组件未被渲染
    确认CafesTable组件是否真的挂载到了DOM中,如果组件根本没被渲染,useQuery自然不会执行。可以在组件内加个console.log确认是否进入了组件逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:45:55