问题
开发中遇到一个了一个需求,在某个固定大小的容器中,滚动获取资源。
那么意味着我需要获取这个容器各种高度,好判断是否发送请求
同时,我用useRef绑定到那个容器中
然后在useEffect()中发送请求,以及给ulDOM一个滚动的监听事件
当时看到useEffect里面的return 给了一个警告,没太在意。
问题来了!由于useEffect的特点,这种移除监听事件是有问题的,后续这个ulDOM可能为null;
然后报错ComConduct.tsx:59 Uncaught TypeError: Cannot read properties of null (reading ‘removeEventListener’
解决办法
解放方法挺简单的,我们用一个变量存储ulDOM就行了。
这样就可以避免ref所绑定的对象为null的情