useEffect中的return clearTimeout(xxx)
const closeErrorInfo = () => {
myTimeout = setTimeout(() => {
setErrorInfo(UNDEFINED)
}, 3000)
}
useEffect(() => {
if (errorInfo) closeErrorInfo()
// 写在这里定时器中的代码就不会执行了...
// 可能是提前清除了定时器?
// return clearTimeout(myTimeout)
}, [errorInfo])
//这样写就正常了
useEffect(() => clearTimeout(myTimeout), [])
所以 useEffect 第二个参数不为空时 return 的执行时机时什么呀…