0
votes

Ne peut pas accéder à cela.state dans une autre fonction

onUpload() {
    console.log(this.state.data);
}

0 commentaires

4 Réponses :


1
votes

Utiliser BIND IN CONSTRUCTOR:

onChange = (e) => {
  ...
}


0 commentaires

3
votes

Faire une fonction (sauf la fonction arrow) crée sa propre instance de Ceci code>. Donc, il n'y a pas d'objet d'état dans votre fonction. Pour faire face à ce problème, vous avez deux manières -

Utilisez une fonction de flèche forte> - p>

à l'aide d'une fonction de flèche ne crée pas sa propre instance de Ceci code > p> xxx pré>

lie de votre fonction code> sur ceci code> fort> p>

constructor (props) {
  super(props)
  this.onChange = this.onChange.bind(this);
  this.onUpload = this.onUpload.bind(this);
}


1 commentaires

la liaison fonctionne, conformément aux normes de code nécessaires



0
votes

change vous fonctionner à ceci: xxx


1 commentaires

merci@babak pour les normes de codage droit d'écriture tandon.setstate ({Data: e.Target.Result}, fonction () {console.log (that.state.data) // ici il donne la valeur }); J'ai utilisé ces normes.



1
votes

Lier votre méthode avec la classe, sinon Ceci code> sera non défini code>

    1. ol> xxx pré>

    ou utilisez la fonction de flèche dans les propriétés de la classe si vous en avez la prise en charge. p>

    1. class Uploader extends React.Component {
      
          constructor(props) {
              super(props);
              this.state = {
                data: '',
                name :'',
                loading : false
              }
          }
      
          onChange = () => {}
      }
      


2 commentaires

Merci à @imran pour votre réponse, mon code a travaillé avec la liaison et ' ondupload = () => {' '


Bien que ce soit aussi un format correct et que mon code avait besoin de ces changements aussi!