我从我的组件发送数据沿着路由,我想在另一个组件的构造函数中检索它:
正在发送数据:
this.router.navigate(['/coaches/list'], {
state: { updateMessage: this.processMessage },
replaceUrl: true
});
正在构造函数中检索数据:
if (this.router.getCurrentNavigation().extras?.state != null) {
this.successMessage = this.router.getCurrentNavigation().extras.state;
}
我遇到的问题是第一次extras.state没有定义,没有任何数据,只有当我关闭另一个组件中的对话框按钮时,这个变量才会被填充。
当我收到ERROR TypeError时,请告诉我如何解决此问题:无法在初始加载中读取null的属性“extras”。
4条答案
按热度按时间o2g1uqev1#
您可以通过以下方式访问状态:
yhxst69z2#
我可以通过检查getCurrentNavigation是否为空来解决此问题:
bqujaahr3#
你可以把它简化为一行代码,如果
getCurrentNavigation()
是不真实的,那么你的消息就等于null
:或者,如果您希望指定空值,则为:
7y4bm7vi4#
从Angular 15开始,
this.router.getCurrentNavigation()
可能返回null,因为组件是在导航之后示例化的。另一种方法是从
Location
访问状态(从@angular/common
访问状态)