У меня есть элемент в приложении реакции, в котором есть события мыши. Однако он не работает на мобильных устройствах, поскольку все события мыши преобразуются в события касания. Я хотел бы сделать что-то вроде этого
<div onMouseMove={mousemove}
onMouseUp={mouseup}
onMouseDown={mousedown}
onTouchMove={touchmove}
onTouchEnd={touchend}
onTouchStart={touchstart}>some content</div>
Проблема здесь в том, что я не хотел писать так много атрибутов JSX. Так что я подумал об этом
const elementRef = useRef()
useEffect(()=>{
elementRef.addeventlistener('mousedown', mousedown)
{/* add the rest of the event listeners */}
})
<div ref={elementRef}></div>
Но это все еще много кода, поэтому я подумал об этом.
const eventhandler = e =>{
switch(e.type){
case 'mousedown':
mousedown();
break;
{/*add the rest*/}
}
}
Затем каким-то образом назначьте eventhandler
моему div
, Есть ли способ сделать это (не только React, но ваниль javascript)?