如果要移除事件addEventListener
的执行函数必须使用外部函数而不能直接使用匿名函数
错误写法:
// 这样写是移除不了滚动事件的
componentDidMount() {// 添加滚动监听window.addEventListener('scroll', ()=>{console.log("滚动距离:",window.scrollY)});}// 组件将要卸载,取消监听window滚动事件 componentWillUnmount(){window.removeEventListener('scroll', ()=>{console.log("滚动距离:",window.scrollY)});}
正确写法:
componentDidMount() {// 添加滚动监听window.addEventListener('scroll', this.scroll);}// 组件将要卸载,取消监听window滚动事件 componentWillUnmount(){window.removeEventListener('scroll', this.scroll);}scroll1 = ()=>{console.log("滚动距离:",window.scrollY)}