Я использую хуки, с React 16.9.
У меня есть компонент, который визуализирует элемент HTML canvas. Проблема в том, что у меня есть обработчики событий, которые изменяют состояние компонента, что, в свою очередь, повторно отображает мой элемент canvas и стирает чертеж, который я сделал. Если бы я использовал компоненты класса, я мог бы добавить shouldComponentUpdate() {return false;}
, но я не уверен в эквиваленте для ловушек.
const Canvas = () => {
const [hover, setHover] = useState(false);
const myRef = useRef();
useEffect(() => {
// perform a one-time drawing on the canvas element that should be retained throughout state changes
myRef.current.addEventListener('onmouseover', () => setHover(true));
myRef.current.addEventListener('onmouseout', () => setHover(false));
}, [])
return (
{hover && <p>Hovering</p>}
<canvas ref = {myRef}>
);
}