我正在尝试使用react和相交观察器在聊天应用程序中实现无限滚动功能。当div与视口区域相交时,将触发一个函数以获取更多消息并将它们附加到状态。当我使用触发功能的按钮执行此操作时,它没有问题。并且每次触发时,它都会增加“开始”值,因此每次成功进行分页时,开始值都应比上次高1(在后端,该值乘以[
{
"id": "1",
"component": "crank",
"brand": "part1",
"date_": "13\/11\/2019"
},
{
"id": "3",
"component": "bar",
"brand": "part 3",
"date_": "13\/11\/2019"
}
]
,这就是消息数跳过了对Mongo的查询)。使用该按钮,可以正常工作。使用交集观察器时,具有axios fetch的函数将成功触发,但是它将用于分页的“ start”变量重置为1,因此不会加载任何新帖子。
每次div滚动到视图中时,count
变量就从start
内部以“ 1”的身份登录到控制台。但是,从beTouching
函数开始,如果我单击按钮,它会正确递增,并且即使在两者之间触发了loadMore
函数,也不会为按钮重置beTouching
变量,并且从停止处继续向右递增。
好像只有创建观察者时分配给start
的值才能在与其连接的函数中使用,并且它无法访问当前处于状态的更新值?
我希望它的功能与按钮相同,并使用当前状态值触发loadMore函数,但是每次它都以1的“ start”触发,因此不会加载新帖子。 这是组件:
start