Как упомянул @AlexanderStaroselsky, я думаю, вы просто слегка ошиблись в названии события.
useEffect(() => {
const onbeforeunloadFn = () => {
localStorage.setItem('color', 'red')
}
window.addEventListener('beforeunload', onbeforeunloadFn);
return () => {
window.removeEventListener('beforeunload', onbeforeunloadFn);
}
}, [])
Интересно, что англоязычная версия документа , на которую вы ссылались , имеет немного другой пример, который, вероятно, помог бы вам определить ошибку:
window.addEventListener("beforeunload", function(event) { ... });
window.onbeforeunload = function(event) { ... };