【问题标题】:React Query v3 useInfiniteQuery returns isLoading, isFetching always true and isFetchingNextPage always falseReact Query v3 useInfiniteQuery 返回 isLoading,isFetching 始终为 true,isFetchingNextPage 始终为 false
【发布时间】:2020-12-16 11:25:00
【问题描述】:

我已经使用 react-query v3 中的 useInfiniteQuery 实现了无限滚动。但 isLoadingisFetching 在首页查询后始终为真isFetchingNextPage 始终为假。初始加载第一页后,使用 fetchNextPage()

发出下一页请求

这是我的 useContents 钩子。

const useContents = (params) => {
    return useInfiniteQuery(
        ['contents', params.Section],
        ({ pageParam = 0 }) => fetchContents(pageParam, params), {
            getNextPageParam: (lastPage, allPages) => {
                if (lastPage.payload.size === PAGE_SIZE) return allPages.length;
                return false;
            },
            refetchInterval: 60000,
            staleTime: 60000,
        }
    );
};

这是 fetchContents

const fetchContents = (pageParam, params) => {
    return axios
        .get(`${apiDomain}/contents`, {
            params: {
                Section: params.Section,
                ViewType: params.ViewType,
                Count: pageParam*PAGE_SIZE,
                PageSize: PAGE_SIZE,
                ...params.questionSectionParam,
            },
            ...generateAxiosOptions('GET'),
        })
        .then((res) => {
            return {
                message: res.data.message,
                payload: fromJS(res.data.payload),
                result: res.data.result,
                status: res.status,
                pageParam,
            };
        });
};

我已经花了几个小时,但找不到原因。

【问题讨论】:

    标签: javascript reactjs react-query


    【解决方案1】:

    事实证明这是一个愚蠢的错误。我添加了一个滚动事件侦听器来引用来自具有空数组的道具。在错误代码下方并通过删除空数组进行修复。

    useEffect(() => {
      !!contentListRef && contentListRef.addEventListener('scroll', infiniteScroller, false);
      return () => {
        lastScrollTop = 0;
        contentListRef.removeEventListener('scroll', infiniteScroller, false);
      };
    }, []); // <-- This empty array is the reason for this bug
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多