我想使用react呈现一个项目列表,并使用react intersection observer实现了无限滚动,分页是在服务器端实现的。但我也可以随时删除一个单独的列表。我首先将数据存储在上下文中,对于第一页1,我只是将其添加到上下文中,对于第>1页,我将附加到上下文并Map到它们以进行渲染。
我面临的问题是,如果我删除一个列表(行),并且我分页(滚动到其他页面),页面将递增,并且对第2页发出api请求,但是我没有获得该页的正确数据号,因为删除了1项第2页中的数据减少了1,成为第1页的一部分,因此,我错过了1项类似的后续删除也没有。
我想知道如何解决这个问题:是否需要在服务器端实现中更改某些内容以进行分页(我使用的是javaspring),或者需要从前端执行一些额外的查询,或者在无限滚动上执行delete是不好的。
如
项目总数=26(第1页=20+第2页=6)每页项目数=20
操作
第一个api请求页=1,接收的数据=20,在屏幕上呈现=20
删除1个项目,因此总数=25,在屏幕上呈现=19
滚动到第2页,第2个api请求页=2,收到的数据5(因为1个项目被删除),在屏幕上呈现=19+5=24(所以我已经失去了1个项目的跟踪),现在由于后端逻辑,该项目是第1页的一部分
暂无答案!
目前还没有任何答案,快来回答吧!