当用户滚动到底部时,我试图做一些事情,以下是我在react组件中所做的事情。
注意到它是可行的,但是即使我添加了去抖功能,奇怪的问题仍然是当滚动到达底部时,doSomething函数仍然触发两次。
我必须将延迟从500扩大到3000或更多,以免发生此问题。 为什么会这样,以及如何解决此问题?
componentDidmount() {
window.addEventListener('scroll',_.debounce(this.handleScroll.bind(this),500));
}
componentWillUnmount() {
window.removeEventListener('scroll',500));
}
handleScroll() {
const documentElement = document.documentElement;
const isScrollToBottom = documentElement.clientHeight + documentElement.scrollTop === documentElement.scrollHeight;
if (isScrollToBottom) {
this.doSomething()
}
}
doSomething(){
// do something
}