0
votes

Réagir: Définition de l'objet Array dans SetState

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.

Je n'essaie pas d'ajouter de nouvelles informations au tableau des états, mais de le remplacer entièrement. < / p> xxx


5 commentaires

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 ne correspond pas à la deuxième console.log ? 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.


3 Réponses :


1
votes

SetState est asynchrone, mais il autorise un rappel. XXX


1 commentaires

Donc, il ne définit pas correctement les matrices de tuiles et je ne sais pas pourquoi



0
votes

Après un petit test, j'ai trouvé une solution. Dans mon constructeur initial pour le composant, au lieu de régler xxx

i définissez-le sur égal un tableau vide xxx

Le problème semble être Corrigé et travaille maintenant.


0 commentaires

1
votes

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>


0 commentaires