Как убрать CSS класс при клике не на кнопки и меню? React
Подскажите пожалуйста как правильно написать код, когда при клике вне области навигации и button убирать класс CSS?
Ответы (1 шт):
Автор решения: Vasily
→ Ссылка
Быстрый набросок:
const YourComponent = () => {
const buttonRef = useRef()
const [hasClass, setHasClass] = useState(true)
const handleClick = event => {
if (event.target !== buttonRef.current) {
setHasClass(false)
}
}
useEffect(() => {
window.addEventListener("click", handleClick)
return () => {
window.removeEventListener("click", handleClick)
}
}, [])
return (
<div className={hasClass ? "add-color" : ""}>
<button ref={buttonRef}>Навигация</button>
</div>
)
}
.add-color {
background-color: red;
}
Данный вариант удалит класс .add-color при клике, если он придется не на кнопку. Можно оттолкнуться от данного "базового" примера и реализовать нужную Вам логику.