0

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

 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);

      }
    });
4

1 回答 1

0

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

this.router.events.subscribe( (navEvent)=> {
  if (navEvent instanceof NavigationEnd && navEvent.url.includes('/tabs/mytab')) {
    this.router.getCurrentNavigation().extras.state = navigationExtras;
  }
});
于 2020-01-16T16:21:01.410 回答