2017-08-28 6 views
2

axiosvue.jsを使用してデータを無制限のページ番号としてフェッチします。これは、レンダリングするデータがないとき罰金期待に動作します:Axiosで空の応答を処理するにはどうすればよいですか?

fetchData() { 
    this.loading = true 
    this.page++; 
    axios.get(this.BASE_URL + '/api/jokes/'+'?page='+this.page).then( 
    response => 
    //how to exist if there is no data in the response? 
     this.jokes = response.data).catch(function (error) { 
     console.log(error); 
     }); 

私たちは最後のページに到達したときにレンダリングを停止するか疑問だし、表示するデータがなくなりますか?

私はdocsを見ましたが、私の答えが見つかりませんでした。

答えて

1

いくつかの基本的なフラグ論理を導入するかもしれません。私は仮定する自由を取ったが、あなたは常に論理を定義することができる。

fetchData() { 
    this.loading = true; 
    if (this.page > 0) { 
     axios.get(this.BASE_URL + '/api/jokes/page=' + this.page) 
      .then(response => { 
       const isDataAvailable = response.data && response.data.length; 
       this.jokes = isDataAvailable ? response.data : []; 
       this.page = isDataAvailable ? (this.page + 1) : 0; 
      }) 
      .catch(function(error) { 
       console.error(error); 
      }); 
    } 
} 
+0

これは動作しません。私は関数全体を書き直したくありません。 response.dataが空の場合、関数を破棄するように答えを制限してください。 – Karlom

関連する問題