router.navigate(['sample', 'route']) 正在更改页面的 url,但控件未进入 ngOnInit()

问题描述 投票:0回答:1

我最近将我的项目从 Angular 15 更新到 Angular 17。从那时起我就一直遇到这个问题。

当触发

this.router.navigate(['sample', 'route'])
功能时,URL会发生变化,但页面不会加载。我在浏览器中调试,发现控件没有进入所调用组件的
ngOnInit()
函数。

此功能在之前的版本(即 Angular 15)中运行良好

javascript angular typescript angular-router ngoninit
1个回答
0
投票

我遇到了同样的问题;假设您使用注入方法注入 Router 实例,请尝试使用构造函数更改并注入它

constructor(private router: Router) {}

而不是...

router = inject(Router);

还要确保使用正确的导入。实施上述代码更改后,我意识到自己犯了一个错误;

Inject(Router)
inject(Router)

之间有区别
import { Inject, inject } from '@angular/core';

您需要使用后者。

© www.soinside.com 2019 - 2024. All rights reserved.