在我的home.component.ts
,我的ngOnInit
方法是:
ngOnInit() {
console.log("ngoninitcalled");
this.activatedRoute.queryParams.subscribe((params:Params) => {
let refresh = params['refresh'];
if(refresh){
// do something refreshing
}
}
}
这是我的customFunction
customFunction(email: string, username:string) {
// do something custom
this.router.navigate([''],{queryParams: {refresh:true}});
}
'' 路由重定向到home.component.ts
HomeComponent(其片段在上面)。
在检查控制台日志时,我看到当使用其他组件(通过this.router.navigate([''], {queryParams: {refresh:true}}
)的刷新参数调用 HomeComponent 时,会调用 ngOnInit()。但是如果它是从 HomeComponent 本身调用的(如上面的代码),则不会调用 ngOnInit()。
那么这是预期的行为吗?我可以在自定义函数中安全地this.ngOnInit()
调用router.navigate
手动调用ngOnInit()
吗(假设ngOnInit
如果 HomeComponent 被重定向到自身,则永远不会被调用)?