我正在使用react挂钩,并且我想有条件地添加和删除侦听器(不仅是在卸载组件的情况下)。 我的组件添加了侦听器,但是从不删除它。为什么会这样?
useEffect(() => {
if (isPlaying) {
document.addEventListener('keydown',handleKeyPress);
}
if (!isPlaying) {
document.removeEventListener('keydown',handleKeyPress);
}
return () => {
document.removeEventListener('keydown',handleKeyPress);
};
},[]);