最佳答案
我不明白为什么当我使用setTimeout
函数时,我的react组件开始到infinite console.log。一切都在工作,但PC开始滞后的地狱。
有人说这个函数在超时时改变我的状态还有那个重新渲染组件,设置新定时器等等。现在我需要了解如何清除它是正确的。
export default function Loading() {
// if data fetching is slow, after 1 sec i will show some loading animation
const [showLoading, setShowLoading] = useState(true)
let timer1 = setTimeout(() => setShowLoading(true), 1000)
console.log('this message will render every second')
return 1
}
明确在不同版本的代码中没有帮助:
const [showLoading, setShowLoading] = useState(true)
let timer1 = setTimeout(() => setShowLoading(true), 1000)
useEffect(
() => {
return () => {
clearTimeout(timer1)
}
},
[showLoading]
)