javascript - React 的 onMouseMove 在 div 上工作但不在自定义组件上工作?

标签 javascript reactjs

我想记录,每当用户将鼠标移到我的 <Canvas /> 上时组件和控制台记录坐标。

这个有效:

<div onMouseMove={this._onMouseMove.bind(this)}>
  <Canvas 
    dataURL={this.state.image} 
    textTop={this.state.textTop} 
    textBottom={this.state.textBottom} 
    fontSize={this.state.fontSize} />
  </div>
</div>

但这不是(将 onMouseMovediv 移动到 Canvas Component 本身):

<div>
  <Canvas 
    onMouseMove={this._onMouseMove.bind(this)}
    dataURL={this.state.image} 
    textTop={this.state.textTop} 
    textBottom={this.state.textBottom} 
    fontSize={this.state.fontSize} />
  </div>
</div>

我在这里做错了什么?

PS: 补充一下:

_onMouseMove(e) {
    console.log(e.screenX);
    console.log(e.screenY);
  }

最佳答案

onMouseMove 就像您的自定义组件必须自行处理的任何其他 Prop 一样。

示例

class Canvas extends React.Component {
  render() {
    return <canvas onMouseMove={this.props.onMouseMove} />;
  }
}

关于javascript - React 的 onMouseMove 在 div 上工作但不在自定义组件上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51223854/

相关文章:

javascript - 随着窗口大小的变化自动调整标题大小

javascript - 如何在 Javascript 和 PHP 中使用 XMLHttpRequest 将 HTML 内容发送到 MSSQL 数据库字段?

javascript - 如何在另一个声明文件中引用 lib.dom.d.ts 中的类型?

javascript - 我可以知道为什么在 React 中有时需要在箭头函数之前添加 const/var/let 吗?

reactjs - 为什么对象文字 `{a}` 的 TypeScript 断言适用于接口(interface) `{a, b}` 而不是 `{a?, b}`

javascript - 来自 Prop 的 ReactJs 样式表行

javascript - 添加 java 脚本后,下拉菜单无法在 Index.html 上工作

javascript - Reactjs,删除 componentWillUnmount 上的事件监听器,

javascript - 如何在 React 中反转数组

reactjs - React useEffect 运行太频繁