Я не могу определить последовательность выполнения кода в реакции native. Следующие кодовые журналы test
, test 2
и затем test 1
. Я хочу изменить значение submittedURI
.React/React Native: Порядок выполнения в компоненте
constructor(props) {
super(props);
this.state = {
enterURI: ''
};
}
onUriTextChanged(event) {
this.setState({ enterURI: event.nativeEvent.text });
}
onSubmitPress() {
var submittedURI = this.state.enterURI;
console.log("test "+submittedURI);
var url = encodeURIComponent(submittedURI), data = null;
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.urlmeta.org/?url=" + url);
xhr.send(data);
xhr.addEventListener("readystatechange", function() {
if (this.readyState === this.DONE) {
// console.log(this.responseText);
var responseJSON = JSON.parse(this.responseText);
submittedURI = responseJSON.meta.image;
console.log("test 1 "+submittedURI);
}
});
this.props.onURISubmit(submittedURI);
console.log("test 2 "+submittedURI);
}
Право. Спасибо за помощь. Я получаю 'undefined 'не объект (оценивая' this.props.onURISubmit ')' когда я вызываю 'this.props.onURISubmit (отправленныйURI);' inside 'readystatechange'. – user709413
Решил его, сохранив 'this' в другой переменной. – user709413