【发布时间】:2021-07-20 16:01:21
【问题描述】:
我想在组件中实现 无限滚动,但我的后端没有“当前”端点,这意味着无限查询的实际版本是不可能的(如据我了解)。
在我的组件中,我使用有状态变量作为 queryKey 参数创建了一个查询:
useQuery([`posts_paginated`, { page }] {
// request to http://.../posts?_sort=createdAt&_order=desc&_page=${page}&_limit=10
}
我的问题是 修改查询键会创建一个新的查询实例,触发响应对象中的 isLoading 布尔值,并且组件的呈现值取决于:
return (IsLoading) ? <LoadingComponent /> : <ViewComponent />
这意味着当设置页面变量时,ViewComponent 被卸载,结果我失去了滚动条的当前位置。
我尝试使查询无效,以便仅触发 isFetching,但我认为由于查询的回调闭包已经设置,因此无法以这种方式更改参数值(我无法让它运行除了初始值)。
我可以使用 isLoading 停止渲染,或者我可以开始在某种状态下显式管理我的滚动条位置,但是 我想知道是否有一种明显的方法可以使用 react-query 来实现我所需要的强>。
【问题讨论】:
标签: reactjs pagination scrollbar react-query