Je ne comprends pas pourquoi, lorsque j'utilise setTimeout
fonction mon composant react commence à être infini console.log. Tout fonctionne, mais le PC se met à lagger comme l'enfer. Certaines personnes disent que la fonction en timeout changer mon état et que le composant rerender, qui définit un nouveau timer et ainsi de suite. Maintenant, j'ai besoin de comprendre comment effacer c'est juste.
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
}
L'effacement dans une version différente du code n'aide pas :
const [showLoading, setShowLoading] = useState(true)
let timer1 = setTimeout(() => setShowLoading(true), 1000)
useEffect(
() => {
return () => {
clearTimeout(timer1)
}
},
[showLoading]
)