这个问题是升级到Angular 15后才出现的,
我正在将状态属性传递给路由器,但 this.router.getCurrentNavigation() 返回一个空值,该值已通过router.navigate
在另一个组件中
A组份:
组分B:
我可以通过使用访问组件中的状态this.state = history.state;
but this.state = this.router.getCurrentNavigation()?.extras?.state ?? {};
不工作,
它说 getCurrentNavigation() 返回 null。那是什么?
当我们升级到 Angular 15 时,我们遇到了同样的问题。我们通过添加新的解析器解决了这个问题。该解析器可以使用 getCurrentNavigation() 访问当前路线,因此可以将“额外”数据返回给组件。
@Injectable()
export class MyComponentResolver implements Resolve<MyComponentExtraData> {
constructor(private router: Router) {
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): MyComponentExtraData{
return this.router.getCurrentNavigation().extras?.state['MyData'];
}
}
然后,您可以使用activatedRoute.snapshot字典访问组件构造函数中解析器返回的数据,没有任何问题。
constructor(private activatedRoute: ActivatedRoute) {
let myData = this.activatedRoute.snapshot.data['myData'] /* the myData key depends on how you defined the resolver in your route declaration*/
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)