Maison > Questions et réponses > le corps du texte
P粉1830770972023-08-19 11:59:00
Vous pouvez simplement modifier cette ligne dans la fonction addMoreData
setLoadedData((prev) => [...prev, ...newData]);
pour
setLoadedData([...loadedData, ...newData]);
Cela entraînera la mise à jour de l'état en fonction de la valeur actuelle lors du rendu, car la deuxième fois useEffect
运行时组件尚未重新渲染,所以第一个组件所做的更改尚未反映出来,因此loadedData
il n'a pas encore été mis à jour.
Lorsque vous mettez à jour en utilisant le formulaire fonctionnel, prev
est la valeur live de l'état, il est normal que vous rencontriez cela lors de l'utilisation du mode strict en développement.
Enfin, débarrassez-vous de isLoading
, cela n'aidera pas à résoudre le problème.
Remarque : L'utilisation de la forme fonctionnelle de setState est plus recommandée lorsque le mode strict est activé, mais n'est pas recommandée dans useEffect
car ce hook s'exécutera deux fois lorsque le composant est monté.
De plus, lorsque vous incluez data.length
et loadedData.length
dans votre tableau de dépendances, cela entraînera le déclenchement de data.length
和loadedData.length
时,这将使useEffect
chaque fois que l'une de ces valeurs change.