我从我的组件发送数据和路由,我想在另一个组件的构造函数中检索它:
发送数据:
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第一次在没有任何数据的情况下是未定义的。只有当我关闭另一个组件中的对话框按钮时,这个变量才会被填充。
请告诉我如何解决这个问题,因为我正在获得错误TypeError:无法在初始加载中读取空的属性“附加”。
发布于 2021-05-27 04:57:20
如果getCurrentNavigation为null,我可以通过检查来解决这个问题:
constructor(
private fb: FormBuilder,
private modalService: NgbModal,
private route: ActivatedRoute,
private router: Router,
public commonService: CommonService
) {
if (this.router.getCurrentNavigation() != null) {
this.successMessage = this.router.getCurrentNavigation().extras.state;
}
}发布于 2021-05-27 05:13:36
您可以通过以下方式访问状态:
history.state.updateMessage发布于 2022-07-14 13:30:11
您可以将其简化为一行代码,这将使您的消息等同于null,如果getCurrentNavigation()不真实的话:
this.successMessage = this.router.getCurrentNavigation()?.extras.state;如果要指定空值,则为:
this.successMessage = this.router.getCurrentNavigation()?.extras.state ?? 'YOUR VALUE';https://stackoverflow.com/questions/67715879
复制相似问题