В одном компоненте у меня две подписки, одна для параметров запроса, одна для http GET-запроса. На этой странице пользователь также имеет возможность переключаться между различными типами данных (может отображаться только один тип). Когда пользователь щелкает одну опцию, параметр запроса обновляется, и подписка обновляется, поэтому запрос HTTP GET вызывается снова, и данные также обновляются, как показано ниже:
constructor(private service: DataService, private route: ActivatedRoute) {}
ngOnInit() {
this.route.queryParams.subscribe(params => {
this.dataType = params["dataType"];
this.service
.getData(this.dataType)
.subscribe(data => {
this.data=data;
})
})
}
В html:
[queryParams]="{ dataType: row.dataType}"
Проблема в том, что каждый раз, когда пользователь щелкает по другому типу данных, новая подписка создается из запроса HTTP GET, потому что все происходит внутри одного компонента. Таким образом, при создании компонента: 2 подписки, пользователь нажимает новый тип данных: загружены новые данные и 3 подписки, пользователь нажимает другой тип данных, загружаются новые данные и 4 подписки и так далее. Как вы можете себе представить, после 4-5 нажатий страница просто вылетает.
Я пытался найти решение этой проблемы (в частности, загрузку данных в один и тот же компонент на основе выбора пользователя), но я не могу понять, как это сделать. Любая помощь будет оценена