离子角度在哪里放置BehaviorSubject订阅

问题描述 投票:0回答:1

在我的离子角度应用程序中,我使用behaviorSubject来指示何时刷新一些数据。目前,订阅被放入第一个选项卡的 ionicViewEnter 中,如下所示:

async ionViewDidEnter(){
    this.sharedSvc.getDataUpdateValue().subscribe(async(value) => {
      if(value === true){
        console.log("time to refresh data and reset variable")
        this.updatePassiveIncomeBreakup()
        this.updateDoughetData()
        this.updateBarChatData()
        this.sharedSvc.setDataUpdateValue(false)
      }
    })
  }

在这种情况下,每次在 ionicViewDidEnter 中切换选项卡时都会调用此函数。我想这是错误的地方,因为我只需要在某个地方订阅一次。

最好的地方应该是哪里?

angular ionic-framework behaviorsubject
1个回答
0
投票

为什么不在组件初始化期间调用

ngOnInit
并且不再调用。

  ngOnInit() {
    this.sharedSvc.getDataUpdateValue().subscribe(async(value) => {
      if(value === true){
        console.log("time to refresh data and reset variable")
        this.updatePassiveIncomeBreakup()
        this.updateDoughetData()
        this.updateBarChatData()
        this.sharedSvc.setDataUpdateValue(false)
      }
    })
  }
© www.soinside.com 2019 - 2024. All rights reserved.