2017-12-06 12 views
0

これは私のフッタコンポーネントです。フッタバーから次のようにいくつかのページを呼び出しています。フッターをクリックすると、失効したコンポーネントが読み込まれます。私はそれをデバッグし、コンポーネントのコンストラクタを呼び出すのではないことを知っています(ここでは、データを更新するロードロジックがあります)。私は、正しいデータを取得するためにコンポーネントを呼び出すためにフッターから2回クリックする必要がイオン2が古い成分をロードしています

ここ
tab-footer.component.html 

    <ion-tabs> 
    <ion-tab [root]="home" tabIcon="md-home" 
    [rootParams]="homeparams"></ion-tab> 
    <ion-tab [root]="alertsPage" tabIcon="md-notifications-outline"> 
    </iontab> 
    <ion-tab [root]="flagged" tabIcon="flag"></ion-tab> 
    </ion-tabs> 


    @Component({ 
    selector: 'app-tab-footer', 
    templateUrl: './tab-footer.component.html', 
    styleUrls: ['./tab-footer.component.scss'] 
    }) 
    export class TabFooterComponent { 

    home = HomeComponent; 
    alertsPage = AlertsComponent; 
    flagged = FlaggedComponent; 
    homeparams: any; 

    constructor(public navparam: NavParams) { 
    this.homeparams = navparam; 
    } 

} 

である私のフッターから呼び出されるコンポーネントの1

@Component({ 
selector: 'app-flagged', 
templateUrl: './flagged.component.html', 
    styleUrls: ['./flagged.component.scss'] 
}) 
export class FlaggedComponent { 

    someData1: any; 
    someData:any[] = []; 

    someObj = {} 

constructor(public someService: SomeServiceService, 
    public exampleService: ExampleService, 
    public navParams: NavParams, 
    public navCtrl: NavController) { 

    // some loading logic 
    } 

誰が出て、なぜそれを見つけるのを助けることができます毎回コンストラクタを呼び出さないのですか? 新しく読み込むプロパティを指定していますか? は

+0

どうTabFooterComponentによってトリガナビゲーションはありますか? – nipuna777

+0

これは、問題を再現するのに十分な情報ではありません。あなたは、完全な最小限の例やイベントを含めてください。[stackblitz](https://stackblitz.com/) –

+0

私は –

答えて

1

があなたのFlaggedComponentクラスにライフサイクルイベントionViewDidEnterまたはionViewWillEnterを追加し、それらのいずれかの方法にコンストラクタから、あなたの更新またはロードロジックを移動していただきありがとうございます。

ionViewDidEnter() { 
    console.log('the page has entered'); 
} 

ionViewWillEnter() { 
    console.log('the page is about to enter'); 
} 

ページが完全に入力され、現在アクティブなページでいるときionViewDidEnterが呼び出されます。 このイベントは、最初のロードであっても、キャッシュされたページであっても発生します。

ionViewWillEnterは、ページが入力されてアクティブページになるときに呼び出されます。

参照:https://ionicframework.com/docs/api/navigation/NavController/#lifecycle-events

関連する問題