У меня есть вызов setTimeout вне useEffect, как я могу очиститьTimeout, когда экран отключается?
Например, у меня есть функциональный компонент с этим в нем ...
...
useEffect(() => {
return () => clearTimeout(myTimeout)
}, [])
_getData = () => {
fetch()
.then(data => {
let myTimeout = setTimeout(() => setSomething(!something), 5000)
})
}
Итак, где-то позже в коде я вызываю _getData () - я не хочу, чтобы это запускалось с useEffect при первой загрузке страницы, только при выполнении определенных действий.После того, как я получу данные, я установлю таймаут.Но useEffect не знает об этом тайм-ауте.
Я попытался установить время ожидания следующим образом ...
_getData...
setTimeoutVar(setTimeout(() => setSomething(!something), 5000))
useEffect...
return () => clearTimeout(setTimeoutVar)
Я попробовал несколько других странных идей, ничего не работает, я не могу понять это.
Мысли?