0
私は、レスポンスを持つリスト配列の状態を設定する単純なAPI呼び出しを持っています。私は、悪い検索がある(つまり、タイプミスのような)場合、または配列が応答で設定されていない場合、try/catchまたはエラーメッセージをどのように実装するのかと思いました。コードスニペットは以下の通りです:reactjsの条件に基づいて状態を設定する
componentDidMount() {
this.search('https://itunes.apple.com/search?term=modern_baseball');
}
search(URL) {
let self = this; //avoid the .bind call and store a ref to the current context for use inside the ajax handlers.
return $.ajax({
type: 'GET',
dataType: 'json',
url: URL,
success: function (response) {
self.showResults(response);
},
error: function() {
alert("Error handling request");
self.setState({error: "Error handling request", moveResults:[], searchResults:[]}); //set the state directly if there is an error
}
});
}
showResults(response) {
console.log(response);
this.setState({
searchResults: response.results,
moveResults: []
});
}
それは現在のコンテキスト(この)に変数(自己)を設定し、その後のエラーハンドラ内で直接SETSTATEを呼び出します。
componentDidMount() {
this.search('https://itunes.apple.com/search?term=modern_baseball');
}
search(URL) {
return $.ajax({
type: 'GET',
dataType: 'json',
url: URL,
success: function (response) {
this.showResults(response);
}.bind(this),
error: function() {
alert("Error handling request");
}
});
}
showResults(response) {
console.log(response);
this.setState({
searchResults: response.results,
moveResults: []
});
}
私は質問を理解しているかどうかはわかりません。成功とエラーのハンドラーがあり、結果が得られます。条件を作成し、状態を適切に設定します。 –