Angular 离子2/角型2组件生命周期挂钩

Angular 离子2/角型2组件生命周期挂钩,angular,events,ionic2,hook,lifecycle,Angular,Events,Ionic2,Hook,Lifecycle,我在一个页面中有一个组件,每次导航到该页面时,我都需要将其挂接。它包含一个mapbox地图,我发现如果用户使用注册页面注册,然后拉起键盘,然后返回地图页面,地图分区就变小了,因为用户打开了手机上的键盘。我希望这有意义 我已经尝试了这里列出的所有钩子,但没有一个钩子在每次导航页面时都会触发 任何帮助都会很好。请尝试:ionViewDidEnter(),以及@ViewChild。使用@ViewChild可以访问组件 来自爱奥尼亚: 当页面完全进入并且现在是活动页面时,IonViewDiCenter(

我在一个页面中有一个组件,每次导航到该页面时,我都需要将其挂接。它包含一个mapbox地图,我发现如果用户使用注册页面注册,然后拉起键盘,然后返回地图页面,地图分区就变小了,因为用户打开了手机上的键盘。我希望这有意义

我已经尝试了这里列出的所有钩子,但没有一个钩子在每次导航页面时都会触发

任何帮助都会很好。

请尝试:
ionViewDidEnter()
,以及
@ViewChild
。使用
@ViewChild
可以访问组件

来自爱奥尼亚:
当页面完全进入并且现在是活动页面时,
IonViewDiCenter()
将触发。无论是第一次加载还是缓存页面,都将触发此事件

这将使您能够在每次导航页面时调用组件上的函数

父页面TS:

@Component({
    selector: 'parent-page',
    templateURL: 'parent-page.html'
})
export class ParentPage{
    @ViewChild('myComponent') myComponent;

    constructor(){}

    ionViewDidEnter(){
        this.myComponent.someFunc();
    }

    ...
}
<ion-content>
    ...
    <child-component #myComponent></child-component>
    ...
</ion-content>
父页面HTML:

@Component({
    selector: 'parent-page',
    templateURL: 'parent-page.html'
})
export class ParentPage{
    @ViewChild('myComponent') myComponent;

    constructor(){}

    ionViewDidEnter(){
        this.myComponent.someFunc();
    }

    ...
}
<ion-content>
    ...
    <child-component #myComponent></child-component>
    ...
</ion-content>

...
...

找到任何成功的方法吗?还没有,可能必须使用页面事件挂钩来调用组件中的方法。不是很干净。IonViewDiEnter仅在页面上触发,而不是在组件上?我想我将不得不使用页面事件来调用组件中的一个方法?页面就是组件层,你可能没有跟踪我?页面是组件,但页面是组件的扩展,只有页面具有IonViewDiCenter?组件只有这些挂钩。正如您所看到的,没有IonViewDiCenter。感谢您的帮助@robbannn,但IonViewDiCenter在组件内部不做任何操作。它不会激发。
IonViewDiCenter(){console.log('Hello Home Map Provider,did enter hook');}
不会在组件中激发:(