角度组件在第二次使用时不接收状态数据



我正在从带有状态的路由传递数据,但组件只是第一次收到它,我如何在每次组件可见时侦听它。

const navigationExtras: NavigationExtras = {
state: { billingInfoData: billinfoData },
};
this.router.navigate(['/tabs/mytab'], navigationExtras);

接收代码在构造函数中如下所示

this.route.queryParams.subscribe(data => {
console.error(data);
this.setSubtitle(data);
if (
this.router.getCurrentNavigation() &&
this.router.getCurrentNavigation().extras.state
) {
console.error(this.router.getCurrentNavigation().extras.state);
}
});

您可以尝试从路由器订阅 NavigationEnd 事件,并将您的状态添加到一个比 mytab 组件寿命更长的组件中的钩子中,例如 ngOnInit:

this.router.events.subscribe( (navEvent)=> {
if (navEvent instanceof NavigationEnd && navEvent.url.includes('/tabs/mytab')) {
this.router.getCurrentNavigation().extras.state = navigationExtras;
}
});

最新更新