我正在使用 Angular 7 路由器 navigationExtras 状态将数据(json)发送到页面,并且我想在向前导航时防止返回此页面。
我尝试在“recieverDataPage”中使用条件,所以当我没有数据时,它会返回上一页,但看起来很糟糕,我认为这不能算是好的做法。
我正在分享我在“dataPage”和“recieverDataPage”中使用的代码:
DataPage 传递数据代码:
openTicketDetail(ticket: any) {
let navigationExtras: NavigationExtras = {
state: {
ticket: ticket
}
};
this.router.navigate(['/menu/ticket-detail'], navigationExtras);
}
recieverDataPage 获取数据代码:
export class TicketDetailPage implements OnInit {
ticket:any;
constructor(private router: Router, private route: ActivatedRoute) {
this.route.queryParams.subscribe(params => {
if (this.router.getCurrentNavigation().extras.state) {
this.ticket = this.router.getCurrentNavigation().extras.state.ticket;
}
});
}
}
我的导航历史是这样的:dataPage -> recieverDataPage -> anotherPage
当我从 dataPage 转到 recieverDataPage 时它工作正常,但是当我从 anotherPage 返回到 recieverDataPage 时,我应该存在的数据未定义,我想防止这种情况发生,可能会跳过 navigationBack 到此页面。