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
}
4 Réponses :
Vous devez afficher Remplacer this.state.popupstatus code> p>
console.log (popupstatus) code> avec console.log (this.state.popupstatus) code> p> p>
sa nature donnant de faux,
Essayez ceci: SettimeOut (fonction () {console.log (this.state.popupstatus);}, 3000);
Essayez de le faire:
useEffect(()=> { setPopUpStatus(a>100); }, [a])
Il donne toujours de faux
La bonne façon de le faire consiste à transmettre une fonction de rappel. un deuxième paramètre dans this.setstate () code> est un appel asynchrone. Par conséquent, vous ne devez pas vérifier ceci.state.poputupstat code> juste après avoir appelé this.setstate () code>. this.setstate () code> appel comme p>
C'est toujours faux
Vous devez lier ceci.handlepopup code> avec Ceci code> intérieure constructeur () code> méthode try -> this.handlepopup.bind. (Ceci) code> En outre, assurez-vous que vous déclarez this.state code> Intérieur constructeur () code> méthode
" Vous pouvez lire plus sur Pour le tester, vous pouvez le connecter dans votre fonction de rendu et vérifier la mise à jour de son mise à jour. P> setState code> ne met pas à jour l'état immédiatement. Il suffit d'en faire les changements. popupstatus code> aura une valeur différente une fois que le composant est re-rendu. p>
instate () code> 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 ..... " em> p>
setstate code> ICI HTTPS: / /reactjs.org/docs/react-component.html#setstetate P>
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 code> puis imprime true code> 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
parce que votre instruction IF n'est pas exécutée. Vous devez ajouter le
si ... code> instruction dans une fonction et appelez cette fonction lorsque le composant charge ou ajoutez lesi. code> logique à l'intérieur des crochets de cycle de vie.