состояние isActive не обновляется при вызове handleClick.
const [isActive, setIsActive] = useState(false);
const [isDisabled, setIsDisabled] = useState(props.disabled);
const switchEl = useRef();
useEffect(() => {
setIsDisabled(props.disabled);
if (isDisabled) {
switchEl.current.removeEventListener('click', handleClick);
} else {
switchEl.current.addEventListener('click', handleClick);
}
return () => switchEl.current.addEventListener('click', handleClick);
}, [props.disabled])
const handleClick = (event) => {
event.stopPropagation();
setIsActive(!isActive);
props.onChange(!isActive);
console.log('on click');
};
isActive по-прежнему без изменений после повторного вызова handleClick. это всегда "ложь".