如何与新数据进行con反应先前的数据
我有一个挂钩,如果向下滚动它会像无限滚动一样要求新数据,但是当我向下滚动时,它将其调用API以获取新数据,但它正在删除先前的数据。我想使用以前的数据。我认为通过选择React查询的选择方法可能是可能的,但是如何获取先前的数据
const useActivityFeedData = (
activityFeedPageIndex: number,
pageSize = Config.defaultPageSize,
) =>
useQuery(
[ACTIVITY_FEED, activityFeedPageIndex],
() => Api.user.getActivityFeedData(activityFeedPageIndex, pageSize),
{
initialData: {
activityList: [],
},
keepPreviousData: true,
select: (res: any) => ({
activityList: res.activityList,
}),
},
);
I have a hook, if I scroll down it will call for new data as like infinite scroll, but when I scroll down it calls the API for new data but it is removing the previous data. I want to concat with previous data. I think it is possible by the select method of react query but how can I get the previous data
const useActivityFeedData = (
activityFeedPageIndex: number,
pageSize = Config.defaultPageSize,
) =>
useQuery(
[ACTIVITY_FEED, activityFeedPageIndex],
() => Api.user.getActivityFeedData(activityFeedPageIndex, pageSize),
{
initialData: {
activityList: [],
},
keepPreviousData: true,
select: (res: any) => ({
activityList: res.activityList,
}),
},
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您真的在寻找 infinite查询 - -
useinfinitequery
是为此精确用例制作的。You are really looking for an infinite query -
useInfiniteQuery
is made for this exact use-case.为什么不这样的东西:
然后只需将prevdata返回您的reversnse或将响应分配给使用usequery的变量,然后将其返回。
Why not something like:
and then just return the prevData with your resposnse or assign the response to a variable from useQuery, and return it.
只需在类似的组件安装上创建一个数组,
立即将AXIOS换成相同的使用效果
现在在获取新数据时滚动后,
,只需将其cont到以前的数组中即可。然后,当u映射数据时,它会在更新页面时继续滚动。
希望这会有所帮助:)
Just create a array on mounting of component like this,
Now get axios in same useEffect
Now after scrolling when u get new Data, just concat it to previous array.
Then when u map Data, as it updates the page keeps scrolling.
Hope this helps : )