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})
}
3 Réponses :
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:
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.
Vous devez mettre en place une fonction de SetState qui obtienne la base64url et lier votre fonction de capture d'écran code> pour utiliser this.setstate code>:
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.
pas jolie mais devrait fonctionner
Je pense que vous devez déplacer
this.setstate ({captureDImage: base64url}) code> à l'intérieur dupuis code> rappel