如何解决状态传递数据未定义
我有一个组件,该组件使用路由器导航到具有这样的布尔变量的另一个组件
isFirstPage: boolean;
this.router.navigate(['/consume/course/' + this.id,{state: { isFirst: isFirstPage }} ],{ replaceUrl: true });
在其他组件中,我试图像这样从路由器获取此变量
const isFirst = this.router.getCurrentNavigation().extras.state.isFirst;
但我收到此错误:
无法读取null的属性“ extras”
为什么我的当前导航栏为空?
我也尝试过https://netbasal.com/set-state-object-when-navigating-in-angular-7-2-b87c5b977bb
this.activatedRoute.paramMap
.pipe(map(() => window.history.state))
.subscribe(res => {
console.log(res);
});
和
this.router.events.pipe(
filter(e => e instanceof NavigationStart),map(() => this.router.getCurrentNavigation().extras.state)
).subscribe(res => {
console.log(res);
});
我仍然无法定义
解决方法
navigate仅采用两个参数,它基于NavigationExtras界面 然后将状态传递给命令数组,说明为什么未定义
this.router.navigate(['/consume/course/' + this.id],{
state: { isFirst: isFirstPage },replaceUrl: true
});
选中此demo ??
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。