0
votes

Pourquoi la première itération de ma mise à jour d'un tableau en état n'apparaît-elle pas? Cela n'apparaîtra que la deuxième itération?

J'ai un ordinateur portail défini dans l'état sur Main.js.

continue = e => {
    e.preventDefault();
    this.props.nextStep();
    //increment the txNumber
    // this.props.incTxNumber();
    this.props.insertTx();


2 commentaires

Pouvez-vous essayer d'ajouter async .. attendre à votre fonction, insertx = async () => {..., {....}) .... } .. UTILISER AVIS AVIS AVANT SETSTAT ..


@Maniraj, il n'y a aucune raison d'utiliser Async et d'attendre avec SetState.


3 Réponses :


0
votes

Le problème que vous voyez est causé par le fait que SETState ne définit pas l'état immédiatement , vous pouvez y penser comme une opération asynchrone. Ainsi, lorsque vous essayez de connecter les valeurs de l'état, vous obtenez des valeurs anciennes car l'état n'a pas encore changé.

Pour accéder à la nouvelle valeur de l'état, vous pouvez transmettre un rappel à setState en tant que second paramètre: this.setstate (Newstate, mis à jour => console.log (mise à jour de l'été ))


0 commentaires

0
votes

Ceci est parce que SetState () ne met pas immédiatement à jour l'état . Vous ne verrez pas l'état mis à jour avant la prochaine fois que le rendu () est appelé. En raison de la réaction de réagir, cela est assez rapide, car réagira ne pas essayer de construire le DOM avant que tous les appels SETState () ont été secoués. Mais cela signifie également que, bien que vous ne puissiez pas voir le nouvel état immédiatement dans la console, vous pouvez vous assurer que vous le verrez éventuellement avant d'apparaître dans le navigateur.

Cela signifie toutefois que vous devez vous assurer que votre condition d'état initiale traitée dans votre code. Si vous ne configurez pas votre état dans votre constructeur, vous aurez au moins un tour où vous aurez besoin de restituer sans erreurs de lancer d'état non définies, par exemple.


0 commentaires

2
votes

setState ne se produit pas tout de suite. L'état sera toujours les mêmes valeurs jusqu'à ce que le prochain rendu se produise. Si vous mettez à jour l'état, puis dans le même état de référence du cycle, vous obtiendrez l'ancien état. Cela ferait apparaître que vous êtes un derrière si vous courez quelque chose comme: xxx

Assurez-vous que lorsque vous vous référez d'état, vous ne comptez pas sur un système d'installation d'une autre fonction. C'est là que les crochets et useeffect sont utiles.


0 commentaires