Assicura di this
sarà l'oggetto corretto all'interno della richiamata. Vedi Function.prototype.bind().
Una specifica alternativa per reagire è quello di fare:
myAjaxFunction: function(){
$.getJSON('/something', this.handleData);
},
handleData: function(data){
this.setState({data: data});
}
Questo funziona perché Reagire maniglie legame di metodi di componenti per voi.
Se si è eseguito il codice originale senza binding, si otterrebbe questo errore: TypeError: undefined is not a function
perché this === window
nella richiamata;
o in modalità rigorosa: TypeError: Cannot read property 'setState' of undefined
, dove this === undefined
nella richiamata.
Qualcosa di simile [qui] (http://stackoverflow.com/questions/33973648/react-this-is-undefined-inside-a-component-function). Senza '.bind (this)' il riferimento 'this' diventa nullo se usato all'interno di una funzione personalizzata (definita in un componente reactJs). – RBT