我有一个Ionic 4应用程序,我想在模块之间导航,但是返回初始页面时ngOnInit方法无法运行。
我在app-routin.module中有两个页面
{ path: 'Home', loadChildren: './pages/home/home.module#HomePageModule' },
{ path: 'Login', loadChildren: './pages/login/login.module#LoginPageModule' },
“登录”页面内部有一个按钮(Button1),该按钮执行以下代码
this.router.navigate(['/Home']);
首页内部有一个按钮(Button2),该按钮执行以下代码
this.router.navigate(['/Login']);
我将此页面写在浏览器URL'http://localhost:8100/Login'中。
console log => 'enter to LOGIN ngOnInit'
当我按下Button1时
console log => 'enter to HOME ngOnInit'
当我按下Button2时
nothing log
当我按下Button1时
console log => 'enter to HOME ngOnInit'
我尝试在this.zone.run
内部运行导航,但仍然无法正常工作
编辑:
如果使用[routerLink]="['/Login']"
而不是通过编程方式运行,则可以正常工作
答案 0 :(得分:1)
我有一个类似的问题,我用这个解决了
this.navigateTo('/url');
代替此
this.navigateTo('url');
就我而言,我不使用方括号,它仅在某些情况下有效。
答案 1 :(得分:0)
在组件初始化时会调用ngOnInit get,并且当您离开并返回该组件时已经创建了该组件。
要调用OnInit,您需要销毁组件或使用其他技术来使您的脚本在返回页面时运行。
其他离子生命周期事件是:
No wrap - bottom of <body>