onUpload() { console.log(this.state.data); }
4 Réponses :
Utiliser BIND IN CONSTRUCTOR:
onChange = (e) => { ... }
Faire une fonction (sauf la fonction arrow) crée sa propre instance de à l'aide d'une fonction de flèche ne crée pas 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 -
Ceci code > p>
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);
}
la liaison fonctionne, conformément aux normes de code nécessaires
change vous fonctionner à ceci:
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 }); b> J'ai utilisé ces normes.
Lier votre méthode avec la classe, sinon ou utilisez la fonction de flèche dans les propriétés de la classe si vous en avez la prise en charge. p> Ceci code> sera
non défini code>
1.
ol>
class Uploader extends React.Component {
constructor(props) {
super(props);
this.state = {
data: '',
name :'',
loading : false
}
}
onChange = () => {}
}
Merci à @imran pour votre réponse, mon code a travaillé avec la liaison et ' ondupload = () => { b>' '
Bien que ce soit aussi un format correct et que mon code avait besoin de ces changements aussi!