【问题标题】:ngOnInit not called when coming back返回时未调用 ngOnInit
【发布时间】:2017-02-22 18:01:45
【问题描述】:

我注意到当我回到已经实例化的页面时,ngOnInit() 方法没有被调用。我必须为此使用任何其他方法吗?我需要一个在他访问特定页面时调用的方法。

编辑 已经测试过 onPageWillEnter() 但它不会在 Ionic 2 中触发

【问题讨论】:

标签: angular ionic2


【解决方案1】:

检查链接中的Lifecycle Events 部分。

您可以使用 ionic 2 生命周期挂钩

ionViewWillEnter(){
 //your methods
}

【讨论】:

    【解决方案2】:

    如果你改变了一个路由,只改变了一个参数值,那么组件就会被重用。

    你可以使用

    constructor(router:Router) {
      router.params.subscribe(val => myInit());
    }
    

    在这种情况下调用您的初始化代码而不是使用ngOnInit()

    【讨论】:

      【解决方案3】:

      要在每次访问页面时调用 ngOnInit,您应该使用 ngOnDestroy。例如,如果你的组件内容依赖于 url 中的代码,你应该使用 OnDestroy,这样:

      export class GRMTasksComponent implements OnInit, OnDestroy {
      
         subParams: Subscription;
      
         ngOnInit() {
              this.subParams = this._route.params.subscribe(params => {
                 //some code...
            });
         }
      
         ngOnDestroy() {
              this.subParams.unsubscribe();
         }
      }
      

      【讨论】:

        猜你喜欢
        • 2020-08-23
        • 2016-06-26
        • 2016-05-08
        • 1970-01-01
        • 2018-06-22
        • 1970-01-01
        • 1970-01-01
        • 2018-12-13
        • 1970-01-01
        相关资源
        最近更新 更多