【发布时间】:2021-09-27 23:52:54
【问题描述】:
我正在尝试使用不支持分页光标的后端过滤器实现 useInfiniteQuery 用于分页滚动(我正在使用限制和启动参数)。 我能够检索我的数据,但我的 hasNextPage 变量始终未定义。我无法获取更多数据。当按钮用于触发fetchNextPage时,可以看到新数据,但会删除之前的数据。
我做错了什么?这是我的代码:
// Query data
const {
data,
status,
error,
isSuccess,
hasNextPage,
fetchNextPage,
isFetching,
isFetchingNextPage,
isLoading,
isError,
} = useInfiniteQuery(
[
'vendors',
{vendor_type: vendorTypesId},
{country: countryId},
{city: cityId},
{vendor_product_types: productCategoryId},
{page: thisPage},
{start: start},
{name: nameInput},
{limit: limit},
],
getVendors,
{
initialData: {
pages : [{
result: vendors,
resultCount: 495,
pageId: 0,
nextPageId: 15
}],
pageParams: startParams
}
},
{getNextPageParam: (lastPage, pages) => lastPage.nextPageId}
{keepPreviousData: true}
)
更新: hasNextPage 始终未定义,因为 getNextPageParam 和 initialData 位于两个单独的对象中。我是这样更正的:
{
initialData: {
pages : [{
result: vendors,
resultCount: 495,
pageId: 0,
nextPageId: 15
}],
pageParams: startParams
},
getNextPageParam: (lastPage, pages) => lastPage.nextPageId
}
它现在返回 true 但单击按钮仍会删除以前的数据。
【问题讨论】:
标签: reactjs pagination next.js infinite-scroll react-query