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

使用React Query编写代码无输出,请求排查错误原因

React Query 无输出问题排查

核心问题:queryFn 未返回异步结果

你的queryFn箭头函数中执行了Axios请求,但没有返回Promise对象,导致React Query无法接收和处理接口返回的数据。箭头函数使用大括号{}时,必须显式使用return返回值,否则默认返回undefined。

修复方式

有两种简单的修复方法:

方法1:显式返回Promise

import { useQuery } from "@tanstack/react-query";
import Axios from "axios";

export const Reactqueryex = () => {
const { data, isLoading, isError, refetch } = useQuery({
    queryKey: ["cat"], // 注意:queryKey 建议使用数组格式,符合React Query最佳实践
    queryFn: () => {
      // 显式返回Axios请求的Promise
      return Axios.get("https://catfact.ninja/fact").then((res) => res.data);
    },
  });

  // 可添加加载/错误状态提示,提升用户体验
  if (isLoading) return <div>加载中...</div>;
  if (isError) return <div>获取数据失败</div>;

  return (
    <div>
      <p>Generate Random Cat Fact using React query</p>
      <button onClick={refetch}>Update Fact</button>
      <p>The fact is: {data?.fact}</p>
    </div>
  );
};

方法2:简化箭头函数写法(省略大括号,自动返回)

将queryFn简化为:

queryFn: () => Axios.get("https://catfact.ninja/fact").then((res) => res.data)

额外检查点

确保你的组件被QueryClientProvider包裹,这是React Query正常工作的前提:

// 根组件示例
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { Reactqueryex } from "./Reactqueryex";

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <Reactqueryex />
    </QueryClientProvider>
  );
}

export default App;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 03:15:03