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

React Query useInfiniteQuery无法请求下一页数据问题排查

React Query useInfiniteQuery 无法加载下一页的解决方案

问题核心在于你当前的getNextPageParam逻辑错误——目标API的返回结果里并没有nextCursor字段,导致每次调用fetchNextPage时无法生成有效的下一页参数。

目标乘客API的返回结构包含page(当前页码)和totalPages(总页数),你需要基于这两个字段来判断并生成下一页参数:

修正后的代码

const fetchProjects = async ({ pageParam = 0 }) => {
  const res = await fetch(`https://api.instantwebtools.net/v1/passenger?page=${pageParam}&size=10`);
  return res.json();
};

const List = () => {
  const {
    data,
    error,
    fetchNextPage,
    hasNextPage,
    isFetching,
    isFetchingNextPage,
    status,
  } = useInfiniteQuery({
    queryKey: ['test'],
    queryFn: fetchProjects,
    getNextPageParam: (lastPage) => {
      const nextPage = lastPage.page + 1;
      // 当下一页页码小于总页数时返回参数,否则返回undefined表示无更多数据
      return nextPage < lastPage.totalPages ? nextPage : undefined;
    },
  });

  const loadMore = () => {
    fetchNextPage();
  };

  // 此处添加你的渲染逻辑
};

关键说明

  • React Query 会自动将getNextPageParam返回的值作为pageParam传入下一次的请求函数fetchProjects
  • 当getNextPageParam返回undefined时,hasNextPage会被自动设置为false,此时无需再调用fetchNextPage

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:30:52