我正在开发可以显示作业的作业详细信息的页面,为此我使用 NGRX 存储来调度操作并订阅它以显示如下所示的数据
this.store.dispatch(new LoadJobDetails(jobIdsObject));
this.subs.add(
this.store.pipe(select(state => state.chatbotStoreData.jobDetailsObject)).subscribe(
(data) => {
if(data) {
this.jobDetails = data;
this.getJobHomeSteps();
}
}
)
);
getJobHomeSteps() {
this.store.dispatch(new LoadJobStepsDetails(this.jobId));
this.subs.add(
this.store.pipe(select(state => state.chatbotStoreData.jobHomeStepsDetailsObject)).subscribe(
(data) => {
if(data) {
this.jobStepsDetails = data;
}
}
)
);
}
在 ngondestroy 中,我将取消订阅以下所有订阅,
ngOnDestroy(){
this.subs.unsubscribe();
}
这工作正常,但是我有带有作业列表的 sidenav 菜单,单击每个作业,作业详细信息页面更新单击作业详细信息。在这里,单击每个作业时,都会发生多次初始订阅,并且调度 API 会多次调用,因为我无法取消订阅以前的作业订阅。
如何在参数更改时取消订阅该特定组件中的所有订阅,或者以其他任何方式解决此问题。任何帮助将不胜感激,谢谢!!!