вот такой вот код:
useEffect(() => {
const timer = setTimeout(() => {
setFormIsValid(inputEmail.includes('@') && inputPassword.trim().length > 8)
}, 1000);
return () => {
clearTimeout(timer)
}
}, [inputEmail, inputPassword])
По сути, при срабатывании хука, что у нас происходит: создается таймер, и не запустившись он очищается. Почему это работает не так?
попытаюсь, но не обещаю что правильно скажу при вводе данных в инпуты из зависимостей происходит вызов useEffect если пользователь вводит данные быстрее чем 1 символ в секунду, тогда setTimeout просто удалится (! clearTimeout срабатывает до активации setTimeout !) если же он вводит медленнее, чем 1 символ в секунду, тогда не происходит удаления таймаута и коллбэк отработает
А почему?) Почему это так работает?)
но тут то у нас оно в одном скоупе
функции ведь отдельно запускаются
Обсуждают сегодня