Issue
I find many examples where ActivatedRoute
Observables like params
or url
are subscribed but not unsubscribed.
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);
}
- Are the route objects and subscriptions destroyed automagically and newly created for every component creation?
- Do I have to care about unsubscribing from those
Observable
s? - If not, can you explain what happens with the tree of ActivatedRoute objects in
Router
.routerState
?
Solution
No
When subscribing to an observable in a component, you almost always arrange to unsubscribe when the component is destroyed.
There are a few exceptional observables where this is not necessary. The ActivatedRoute observables are among the exceptions.
The ActivatedRoute and its observables are insulated from the Router itself. The Router destroys a routed component when it is no longer needed and the injected ActivatedRoute dies with it.
Feel free to unsubscribe anyway. It is harmless and never a bad practice.
Answered By - Milad
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.