2017-04-27 12 views
3

私の仕事ページにはタブのページの1つの機能があります。 APIからデータを要求するためにページが入ると、読み込む関数を書いています。タブのページが2回読み込まれる機能

注:タブのページを除き、プッシュオープンページは正常に動作しています。

これはIonic 3.0.1ではうまくいきましたが、一度Ionic 3.1.0にアップグレードすると、ページに入ると機能が2回読み込まれました。ここで

は私work.tsコード

ionViewWillEnter() { 
     if(this.auth.authUser()) { 
     this.isLogin = true; 
     this.userData = this.auth.getUserInfo(); 
     } else { 
     this.isLogin = false; 
     } 

     if(this.isLogin) { 
     this.getClientList(true); 
     } else { 
     this.clientData = []; 
     } 
    } 

    ... 

    private getClientList(resetPage) { 
     console.log('loaded getClientList'); 
     this.isEmpty = false; 
     this.userData = this.auth.getUserInfo(); 
     if(resetPage) { 
      this.content.scrollToTop(0); 
      this.clientPage = 1; 
     } 
     let pageSkip = (this.clientPage-1)*this.clientPerPage; 
     let postData = 'take=' + this.clientPerPage; 
     postData += '&skip=' + pageSkip; 
     postData += '&uid=' + this.userData.userId; 
     if (this.category != '0') { 
      postData += '&category=' + this.category; 
     } 
     if (this.gradeId) { 
      postData += '&grade=' + this.gradeId; 
     } 

     let params = { 
       link: 'app/client/my_client_list', 
       data: postData, 
     } 
     this.showLoading('loading...'); 
     this.api.httpApi(params).subscribe(data => { 
      this.loading.dismiss(); 
     if (data.status_code == 1) { 
      this.clientData = []; 
      if(data.data.length > 0) { 
       this.clientData=data.data; 
       // this.productState = 'in'; 
       if(this.clientPage < 1) { 
       this.clientPage++; 
       } 

       if(data.data.length < this.clientPerPage) { 
       this.isEnd = true; 
       } else { 
       this.isEnd = false; 
       } 
      } else { 
       this.isEmpty = true; 
       this.isEnd = false; 
      } 

     } else if (data.status_code == 500) { 
      this.navCtrl.push('LoginPage'); 
     } else if (data.status_code == 0) { 
      this.isEmpty = true; 
      this.isEnd = false; 
     } else { 
      this.showError('network problem'); 
     } 
     }, 
     error => { 
     this.loading.dismiss(); 
     this.pushLogin(); 
     // this.showError(error); 
     }); 
    } 

コンソールログ出力

Hello AuthService Provider 
work.ts:173 loaded getClientList 
work.ts:173 loaded getClientList 

イオン性情報

Cordova CLI: 6.5.0 
Ionic Framework Version: 3.1.0 
Ionic CLI Version: 2.2.1 
Ionic App Lib Version: 2.2.0 
Ionic App Scripts Version: 1.3.4 
ios-deploy version: Not installed 
ios-sim version: Not installed 
OS: Windows 10 
Node Version: v6.10.2 
Xcode version: Not installed 

[EDIT]

です

APIリクエスト関数をコンストラクタ内に置くと、その関数は1回だけ実行されます。しかし、IonViewWillEnterを使用したい場合は、この問題を解決できません。

答えて

0

明らかにIonic 3.1.1にアップグレードするとこの問題が解決されます。この問題を抱えていて、あなたがまだIonicバージョン3.1.0にいる場合は、3.1.1+にアップグレードするだけで問題は解決します。

関連する問題