Znajduję wiele przykładów, w których ActivatedRoute
Obserwowalne, takie jak params
lub url
są subskrybowane, ale nie są anulowane.Czy muszę anulować subskrypcję obserwowanych obiektów ActivatedRoute (np. Params)?
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params
// (+) converts string 'id' to a number
.switchMap((params: Params) => this.service.getHero(+params['id']))
.subscribe((hero: Hero) => this.hero = hero);
}
- są obiekty tras i subskrypcje zniszczone automagicznie i nowo tworzone dla każdego stworzenia komponentu?
- Czy muszę zadbać o anulowanie subskrypcji z tych
Observable
s? - Jeśli nie, to czy możesz wyjaśnić, co dzieje się z drzewem obiektów ActivatedRoute w
Router
.routerState
?
Jak zrezygnować z subskrypcji, ponieważ jest to "nigdy nie jest zła praktyka". Dokumenty nie podają przykłady w ogóle wypisywanie – TetraDev
@TetraDev tak .. ngOnInit() { this.routeSub = this.route.paramMap .subscribe (params => { this.event = this.eventService.getEvent (+ params.get ('id')); }); } ngOnDestroy() { this.routeSub.unsubscribe(); } – DJDJ
Dzięki @DJDJ. dobra wskazówka – TetraDev