Reactjs 使用typescript作出反应:onmouseup和onmousedown不识别左键单击

Reactjs 使用typescript作出反应:onmouseup和onmousedown不识别左键单击,reactjs,typescript,mouseevent,Reactjs,Typescript,Mouseevent,我有一段简单的代码,它应该在按下鼠标时将mousePressed变量设置为true,在未按下鼠标时将其重置。我看到它在右键单击和中键单击时效果很好,但在左键单击时效果不好事件。中键单击和右键单击分别返回2和3。我错过了什么?有没有办法使用onclick()获得相同的行为?我正在使用react with typescript const canvasElement = document.createElement("canvas"); canvasElement

我有一段简单的代码,它应该在按下鼠标时将mousePressed变量设置为true,在未按下鼠标时将其重置。我看到它在右键单击和中键单击时效果很好,但在左键单击时效果不好<代码>事件。中键单击和右键单击分别返回2和3。我错过了什么?有没有办法使用onclick()获得相同的行为?我正在使用react with typescript

    const canvasElement = document.createElement("canvas");
    canvasElement.onmousedown = (event: MouseEvent) => {
        console.log(event.which);
        console.log("Mouse pressed");
        console.log(this.mousePressed);
        this.mousePressed = true;
    };
    //this.onmouseDown;
    canvasElement.onmouseup =  (event: MouseEvent) => {
        console.log(event.which);
        console.log("Mouse unpressed");
        console.log(this.mousePressed);
        this.mousePressed = false;
    };
这起到了作用:

    canvasElement.addEventListener("pointerdown", this.onmouseDown.bind(this));
    canvasElement.addEventListener("pointermove", this.recordCoordinates.bind(this));
    canvasElement.addEventListener("pointerup", this.onmouseUp.bind(this));

您之前提供的代码工作正常:

打开小提琴上的控制台,您应该会看到正确的

您可能在应用程序中还有其他东西正在捕获点击。确保您没有在任何地方调用
e.stopPropogation

编辑:我看到了你的新解决方案。您的代码中可能有其他原因导致了此问题,但很高兴您修复了它