react hooks的难解之处

是什么让我半夜十一点还在这敲代码,是责任心吗?是上进心吗? 都不是,是这个react该死的useState和useEffect组合使用的晦涩难解。 简单阐述一下今晚遇到的问题吧: useEffect(() => { console.log(myContext); document.a

是什么让我半夜十一点还在这敲代码,是责任心吗?是上进心吗?

都不是,是这个react该死的useState和useEffect组合使用的晦涩难解。

简单阐述一下今晚遇到的问题吧:

useEffect(() => {
    console.log(myContext);
    document.addEventListener("scroll", function () {
      //页面卷去高度 + 浏览器可视窗口的高度 >= 整个页面的高度
      if (
        window.scrollY + window.innerHeight >= document.body.offsetHeight &&
        flag
      ) {
        flag = false;
        setTimeout(() => {
          let a = pageNum + 1;
          setPageNum(a);
        }, 500);
        console.log("到达底部", flag);
      }
    });
  }, [myContext]);

如这段代码,我在初始化的时候想要监听页面的触底事件,当页面触底的时候,执行pageNum的自增操作,以实现无感翻页的效果,但是,在useState()使用pageNum++的时候,我遇到了问题,当state发生变化的时候,整个函数会重新运行,这样就会使得react抛出一个bug:“Assignment to constant variable.”

LICENSED UNDER CC BY-NC-SA 4.0
Comment