2017-07-13 20 views
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: [] 
    }); 
} 
+0

私は質問を理解しているかどうかはわかりません。成功とエラーのハンドラーがあり、結果が得られます。条件を作成し、状態を適切に設定します。 –

答えて

1

はこのような何かを試してみてくださいajax呼び出し。あるいは、成功ハンドラと同じようにコールバック関数を定義することもできます。

関連する問題