0
votes

Comment mettre à jour l'état avec la méthode dans ReactJS

Il y a un état et je veux mettre à jour cet état avec une fonction. En fonction, j'ai déclaré une variable et je souhaite mettre à jour l'état avec cette variable.

this.state = {
       RequestData : [],
       searchopen : false,
       capturedImage : ""
  }


screenShot = () => {

       html2canvas(document.body).then(function(canvas) {
         document.body.appendChild(canvas);
         // Get base64URL
          var base64URL = canvas.toDataURL('image/jpeg').replace('image/jpeg', 'image/octet-stream');


       });

       this.setState({capturedImage: base64URL})
     }


1 commentaires

Je pense que vous devez déplacer this.setstate ({captureDImage: base64url}) à l'intérieur du puis rappel


3 Réponses :


0
votes

Le problème ici est que vous effectuez la mise à jour de l'état en dehors de la fonction de rappel. Comme il s'agit d'une tâche asynchrone, votre méthode ne fonctionnera pas. Essayez ceci: xxx


2 commentaires

J'essaie ceci, mais cela me donne "Rejet non géré (TypeError): impossible de lire la propriété" Statiste "d'une erreur indéfinie"


Montrez-nous l'ensemble du composant. Modifiez votre question.



1
votes

Vous devez mettre en place une fonction de SetState qui obtienne la base64url et lier votre fonction de capture d'écran pour utiliser this.setstate : xxx


2 commentaires

J'ai déjà essayé cela mais ça ne marche pas. Aidez-moi s'il vous plaît à résoudre ce problème.


Merci à l'aide. Cela fonctionne bien. Merci beaucoup.



0
votes

pas jolie mais devrait fonctionner xxx


0 commentaires