我确定这里缺少简单的东西,但是我很困惑。

为什么addEventListener和removeEventListener函数在这些反应生命周期方法中不起作用,但是在它们下面的注释行起作用?

  componentDidMount(){
    document.addEventListener('onmousemove', this.handleMouseMove);
    // document.onmousemove = this.handleMouseMove;
  }

  componentWillUnmount(){
    document.removeEventListener('onmousemove', this.handleMouseMove);
    // document.onmousemove = null;
  }

  handleMouseMove(){ ... }


我可以只使用document.onmousemove = ...代码即可。但是,为什么以上这些行不起作用?我觉得我在这里缺少基本的东西。

任何帮助表示赞赏:)

最佳答案

事件名称是mousemove,而不是onmousemove

onmousemove是事件处理程序属性。

因此,正确的代码是:

document.addEventListener('mousemove', ...);
// OR
document.onmousemove = ...;

09-25 17:23