在我的离子角度应用程序中,我使用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 中切换选项卡时都会调用此函数。我想这是错误的地方,因为我只需要在某个地方订阅一次。
最好的地方应该是哪里?
为什么不在组件初始化期间调用
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)
}
})
}