私は、反応ネイティブでコード実行のシーケンスを理解することができません。次のコードログ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