J'essaie de réinitialiser un tableau à l'aide de la méthode SetState dans React. Dans le constructeur, j'ai défini Tile_arrays sur NULL initialement.
La première console.log () produit la matrice souhaitée d'objets de carreaux nés après la fin de la finition des boucles. Lorsque STSTATATE est appelé et la console subsuquante.Log () après, l'état est toujours nul et n'a pas été mis à jour. P>
Je n'essaie pas d'ajouter de nouvelles informations au tableau des états, mais de le remplacer entièrement. < / p>
3 Réponses :
SetState code> est asynchrone, mais il autorise un rappel.
Donc, il ne définit pas correctement les matrices de tuiles et je ne sais pas pourquoi
Après un petit test, j'ai trouvé une solution. Dans mon constructeur initial pour le composant, au lieu de régler i définissez-le sur égal un tableau vide p> Le problème semble être Corrigé et travaille maintenant. P> P>
copié et collé votre code dans un extrait pour démontrer le commentaire que j'ai fait il y a une heure.
essayez de l'enregistrer dans le rendu p> blockquote>
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.4/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.4/umd/react-dom.production.min.js"></script> <div id="root"></div>
Ce.SetState est asynchrone, vous ne pouvez pas le connecter après l'avoir défini. Essayez de le connecter en rendu.
Vous voudrez peut-être donner quelque chose comme Ceci a lu.
J'ai corrigé la console.log () mais l'état n'est toujours pas mis à jour avec le nouveau tableau, toutes les pensées?
Donc le premier
console.log code> ne correspond pas à la deuxième
console.log code>? Vous pouvez modifier votre question et ajouter une nouvelle section ci-dessous les informations actuelles pour représenter votre état actuel.
OK, j'ai fait une édition sur le code pour être un peu plus lisible et mis en œuvre la nouvelle console.log change. Pour être un peu plus claire, la première console.log est destinée à mettre en valeur qu'il possède une gamme d'objets de tuile (qu'il s'agit correctement). La deuxième console.log est destinée à mettre en valeur l'état a maintenant le nouveau tableau mis à jour au lieu de son état NULL initialisé. Après un look plus proche, il ne ressemble même pas à cette seconde console.Log soit quelque chose.