离子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;
   }
 }

这是我从页脚中调用的组件之一

  @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
   }

谁能帮助找出为什么每次都不会调用构造函数?我是否指定了一些属性来加载它?谢谢

将生命周期事件ionViewDidEnterionViewWillEnter添加到您的FlaggedComponent类中,然后将更新或从构造函数移动到其中一种方法中。

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

ionviewDidenter 在该页面已完全输入并且现在是Active页面时调用。无论是第一个负载还是缓存的页面。

都将开火。

ionviewwillenter 在页面即将输入并成为活动页面时调用。

参考:https://ionicframework.com/docs/api/navigation/navcontroller/#lifecycle-ext

相关内容

  • 没有找到相关文章

最新更新