javascript - 窗口滚动事件以检查是否到达页面底部
问题描述
我正在我的 React 应用程序中实现无限滚动,为了实现这一点,我按照这篇精彩的博客文章中的说明进行操作:https ://upmostly.com/tutorials/build-an-infinite-scroll-component-in -react-using-react-hooks
但是,我发现有一部分不清楚。
以下代码片段检查是否到达页面底部。
useEffect(() => {
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, []);
function handleScroll() {
if (window.innerHeight + document.documentElement.scrollTop !== document.documentElement.offsetHeight) return;
console.log('Fetch more list items!');
}
为什么里面useEffect()
两者window.addEventListener('scroll', handleScroll)
都return () => window.removeEventListener('scroll', handleScroll)
需要?事件被添加然后被删除?
解决方案
推荐阅读
- java - 从返回 CompletableFuture 的异步方法的同步部分抛出异常
- reactjs - 没有在 componentDidMount 中调用 Curried 函数
- spring-boot - 春季数据JPA搜索忽略单词顺序
- gmail-api - 如何使用 Gmail API 从委托帐户发送电子邮件
- sql - 在循环 SQL 查询中捕获多个错误
- c# - WebJobs 中的 IConfiguration
- python - PyList_New 的链接器错误
- css - MiniCssExtractPlugin 相对于 ExtractTextPlugin 的优势?
- docker - 我可以同时运行 Kubernetes 和 Swarm 吗?
- mysql - 正确查询以获取 7 天中前 5 天的平均值?