我有一个 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']"
而不是以编程方式工作
最佳答案
在组件初始化时调用 ngOnInit,当您离开并返回时您的组件已经创建。
为了调用 OnInit,您需要销毁组件或使用不同的技术让您的脚本在您返回页面时运行。
其他 Ionic 生命周期事件是:
ionViewDidLoad
ionViewWillEnter
ionViewDidEnter
ionViewWillLeave
ionViewDidLeave
ionViewWillUnload
关于angular - 如何修复 router.navigate 后未触发的 ngOnInit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095881/