Encuentro muchos ejemplos en los que a los ActivatedRoute
Observables les gusta params
o url
están suscritos pero no cancelados.
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);
}
- ¿Los objetos de ruta y las suscripciones se destruyen automáticamente y se crean de nuevo para cada creación de componente?
- ¿Tengo que preocuparme por darme de baja de esos
Observable
? - Si no, ¿puede explicar qué sucede con el árbol de objetos ActivatedRoute en
Router
.routerState
?
Solución del problema
No
de los documentos:
Al suscribirse a un observable en un componente, casi siempre organiza cancelar la suscripción cuando se destruye el componente.
Hay algunos observables excepcionales donde esto no es necesario. Los observables ActivatedRoute están entre las excepciones..
ActivatedRoute y sus observables están aislados del propio enrutador. El enrutador destruye un componente enrutado cuando ya no es necesario y el ActivatedRoute inyectado muere con él.
Siéntase libre de darse de baja de todos modos. Es inofensivo y nunca una mala práctica.
No hay comentarios.:
Publicar un comentario