0
반응 네이티브에서 코드 실행 순서를 파악할 수 없습니다. 다음 코드는 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);
}
오른쪽. 도와 주셔서 감사합니다. 'readystatechange' 내부에서'this.props.onurISubmit (submittedURI);를 호출 할 때'undefined가 객체가 아닙니다 (this.props.onurISubmit '을 평가)합니다. – user709413
다른 변수에'this '를 저장하여 해결했습니다. – user709413