Я разрабатываю страницу, которая может отображать сведения о задании, для этого я использую хранилище 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 I я отписываюсь от всех подписок, как показано ниже,
ngOnDestroy(){
this.subs.unsubscribe();
}
Это работает нормально, но у меня есть меню sidenav со списком работ, по щелчку каждой работы, обновление страницы сведений о работе с щелкнувшими сведениями о работе. Здесь, при нажатии на каждое задание, первоначальная подписка происходит много раз, и API отправки вызывают несколько раз, потому что я не могу отменить подписку на предыдущие задания.
Как я могу отменить подписку на все подписки в этом конкретном компоненте при изменении параметров или каким-либо другим способом решить эту проблему. Любая помощь будет оценена, спасибо !!!