-1
votes

Définissez l'état via une fonction dans ReactJS

Je vérifie une condition et si cette condition est vraie, alors la fonction de la fonction de modifier l'état. J'essaie mais je console, il ne fait toujours pas de faux. Il sera vraiment utile si vous suggérez un bon moyen de vous,

this.state = {
popUpStatus:false,
}

handlePopUp = () => {
    this.setState({
      popUpStatus: true,
    });
  }

if(a > 100){
    this.handlePopUp;
    console.log(popUpStatus)l // false
}


1 commentaires

parce que votre instruction IF n'est pas exécutée. Vous devez ajouter le si ... instruction dans une fonction et appelez cette fonction lorsque le composant charge ou ajoutez le si. logique à l'intérieur des crochets de cycle de vie.


4 Réponses :


0
votes

Vous devez afficher this.state.popupstatus

Remplacer console.log (popupstatus) avec console.log (this.state.popupstatus)


2 commentaires

sa nature donnant de faux,


Essayez ceci: SettimeOut (fonction () {console.log (this.state.popupstatus);}, 3000);



-1
votes

Essayez de le faire:

useEffect(()=> { setPopUpStatus(a>100); }, [a])


1 commentaires

Il donne toujours de faux



2
votes

this.setstate () est un appel asynchrone. Par conséquent, vous ne devez pas vérifier ceci.state.poputupstat juste après avoir appelé this.setstate () .

La bonne façon de le faire consiste à transmettre une fonction de rappel. un deuxième paramètre dans this.setstate () appel comme xxx


2 commentaires

C'est toujours faux


Vous devez lier ceci.handlepopup avec Ceci intérieure constructeur () méthode try -> this.handlepopup.bind. (Ceci) En outre, assurez-vous que vous déclarez this.state Intérieur constructeur () méthode



0
votes

setState ne met pas à jour l'état immédiatement. Il suffit d'en faire les changements. popupstatus aura une valeur différente une fois que le composant est re-rendu.

" instate () EnQuues change à l'état du composant et raconte réagir que ce composant et ses enfants doivent être re-rendus avec l'état mis à jour. Pensez à State () en tant que demande plutôt qu'une commande immédiate de mettre à jour le composant ..... "

Vous pouvez lire plus sur setstate ICI HTTPS: / /reactjs.org/docs/react-component.html#setstetate

Pour le tester, vous pouvez le connecter dans votre fonction de rendu et vérifier la mise à jour de son mise à jour.


2 commentaires

y a-t-il alternatif pour obtenir le résultat


Je ne suis pas sûr de savoir pourquoi vous devez obtenir le résultat d'un setState immédiatement après l'avoir défini. Mais tout ce que vous avez là, devriez imprimer false puis imprime true après que cela renouille (qu'il doit en arrière-plan). Peut-être que vous pouvez partager votre travail pour comprendre exactement ce dont vous avez besoin. Que je ne devrais pas utiliser Statetate