首页 > 编程知识 正文

removeEventListener 失效问题,导致裸芯片失效的问题

时间:2023-05-03 11:29:10 阅读:198737 作者:4426

removeEventListener 失效问题

removeEventListener(’’,callBack) 中的callBack不执行

源码 let defaultScrollY = 0;useEffect(()=>{ window.addEventListener('scroll',() => { defaultScrollY = window.scrollY; }); return ()=> { console.log('卸载'); window.removeEventListener('scroll',() => { console.log('清除'); }); }; },[]); 打印结果

卸载

原因

addEventListener 和 removeEventListener 中使用了箭头函数,实际上不是同一个函数

解决方案 useEffect(()=>{ console.log(window.scrollY); /** 回调 */ const callBack = () => { defaultScrollY = window.scrollY; }; window.addEventListener('scroll',callBack); return ()=> { window.removeEventListener('scroll',callBack); }; },[]);

设为同一个callBack,如果有不同需求,可以通过传参来区分两者区别

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。