zoukankan      html  css  js  c++  java
  • react添加onScroll事件踩坑

    需求:下拉列表做一个懒加载, 拉到最底下的时候加载新数据. 类似微博

    一开始用onScroll添加在div上面, 发现没有效果

    接着尝试了 document.getElementById("").onscroll 和 addeventlistener('scroll',func) 和ref等都没有用

    一度怀疑人生.

    之后看了overstack上的方法,也是用的onScroll, 但是人家就可以成功, 对比之后发现我的样式里面少了height.

    onScroll一定要加在有height属性的容器上

    代码:

    const [page, setPage] = useState(1);
    const [info, setInfo] = useState([]);
    
    const onscroll = e => {
        if ( refresh && e.target.scrollHeight - e.target.scrollTop - e.target.clientHeight < 1) {
          setPage(page+1)
        }
      };
    
    useEffect(() => {
        fetch("...............",{
        })
          .then(res => res.json())
          .then(res => {
            setInfo(info.concat(res));
          });
      },[page]);
    
    <div className={classes.content} onScroll={onscroll}>
    {info}
    </div>

    content 样式必须带height.

  • 相关阅读:
    javascript中闭包
    bootstrap模版
    JS中DOM操作
    css重置样式
    API--未完待续
    JavaScript 的面向对象
    「 JavaScript 篇 」
    CSS篇
    淘宝前端的一些面试题
    BOM里的window命令; cookie的用法
  • 原文地址:https://www.cnblogs.com/btxlc/p/11114594.html
Copyright © 2011-2022 走看看