我试图在我的反应三纤维画布上听点击事件。但是我在使用时遇到了不同的事件addEventListener
。
onClick
网格属性返回以下事件:
<mesh position={[0, 0, 0]} onClick={(e) => console.log('onClick mesh: ', e)}>
<boxGeometry attach="geometry" args={[10, 10, 10]} />
<meshStandardMaterial attach="material" color="hotpink" wireframe />
</mesh>
onClick mesh:
{dispatchConfig: Object, _targetInst: FiberNode, nativeEvent: MouseEvent, type: "click", target: Object…}
// This is the event I need!!
添加事件侦听器会返回以下事件:
const ThreeEventListener = () => {
const onClickDocument = (e) => {
console.log('onClick document listener: ', e)
}
useEffect(() => {
document.addEventListener('click', onClickDocument, false)
return () => document.removeEventListener('click', onClickDocument)
})
return null
}
onClick document listener:
MouseEvent {isTrusted: true, screenX: 1508, screenY: 427, clientX: 348, clientY: 178…}
// This is a normal DOM event from React that I dont need
演示(单击框触发事件)