Когда вы используете useRef
, вы должны помнить, что значение находится в current
атрибуте ref
.
Попробуйте node.current.contains()
.
Остальные должны выглядеть примерно так, используя React.useEffect
:
const handleOutsideClick = (e) => {
if (node.current.contains(e.target)) {
console.log('clicked inside');
// this.setVisible(true);
} else {
this.setVisible(false);
}
}
React.useEffect(() => {
document.addEventListener('click', handleOutsideClick, false);
return () => void document.removeEventListener('click', handleOutsideClick, false);
}, []);
и
<button onClick={() => void setVisible(true)}>Click to See</button>