ionic tab页再次进入不会初始化组件调用ngOnInit

出现场景:

将一个非tab页的路由model定义在了tab的子路由中如下:

 

 当从tab页跳转至该路由下的也页面,页面只会渲染一次(即只会调用ngOnInit一次),此后再次进入该子页都不会再渲染且不会调用ngOnInit事件

后面查阅资料说是在 Ionic 中,tab 渲染成功后,只要应用不重启,tab 就不会销毁,ngOnInit() 就不会重新运行,

对应的猜想在tab路由中定义的子路由页面也只会渲染一次

解决方法:

方式一:

如果仅仅只是需要每次进入页面调用一些方法处理,不涉及初始化组件的操作可以使用ionic的生命周期函数ionViewWillEnter() ,将原来在ngOnInit中的处理挪至该函数中处理即可

注:ionViewWillEnter()可以直接使用,不需要像ngOnInit需要继承使用

 

 方式二:

针对需要初始化页面的情况,可以将该页面的路由声明至其他的tab路由中(取消自身的路由模块),如本次的home或者system的RoutingModule(组件也要声明至对应的module中)都可,视具体的情况而定。

posted @ 2022-05-07 15:54  流年sugar  阅读(182)  评论(0编辑  收藏  举报