そのコードに於いて、document.addEventListener の第二引数に指定したハンドラで期待されているのは、React.MouseEventではなく、ネイティブのMouseEventです。
質問のコードでは、冒頭で
import React, { MouseEvent } from 'react';
としているので、10行目の
const handleMouseMove = (e: MouseEvent ) => {
のMouseEventは、React.MouseEvent になってしまっています。
したがって、下記のように、handleMouseMove には ネイティブの MouseEvent を指定するようにすれば解決します。
ts
1import React, { MouseEvent } from 'react'; // React.MouseEvent をインポートしている。2 3const MouseEventItem: React.FC = () => {4 const handleMouseDown = (e: MouseEvent) => { // ここのMouseEventは「React.MouseEvent」を意味する。5 document.addEventListener('mousemove', handleMouseMove);6 document.addEventListener('mouseup', handleMouseUp);7 }8 9 const handleMouseMove = ( e: globalThis.MouseEvent) => { // 修正:ネイティブのMouseEventを指定10 //処理11 }12以下略
または、 importから { MouseEvent } from 'react' を削除し、
handleMouseDown には、React.MouseEvent を指定するようにします。
ts
1import React from 'react'; // { MouseEvent } を削除2 3const MouseEventItem: React.FC = () => {4 const handleMouseDown = (e: React.MouseEvent ) => { // 修正5 document.addEventListener('mousemove', handleMouseMove);6 document.addEventListener('mouseup', handleMouseUp);7 }8 9 const handleMouseMove = ( e: MouseEvent) => { // ここはネイティブのMouseEventを指定したことになる10 //処理11 }12 13以下略
0 コメント