Solución:
PD. Hay una mejor manera de filtrar usando una instancia de typeguard, luego obtienes el tipo correcto sin tener que afirmarlo nuevamente:
firstChildData$ = this.router.events.pipe(
filter((e): e is NavigationEnd => e instanceof NavigationEnd),
map(e => { // e is now NavigationEnd }
De acuerdo, después de leer los artículos publicados anteriormente y repensar lo que realmente quiero lograr, descubrí que mi enfoque era definitivamente demasiado complicado. Porque en realidad solo necesito acceso a la ruta llamada actualmente. Entonces comencé desde cero y encontré esta pequeña pero muy efectiva solución:
this.router.events.subscribe(value => {
console.log('current route: ', router.url.toString());
});
¡Gracias a todos los que compartieron un comentario para apoyarme! Ayudó mucho ya que pude atar cabos sueltos.
Si está utilizando el efecto ngrx, puede crear un efecto que escuche el evento del enrutador:
import { NavigationEnd, Router } from '@angular/router';
routeTo$ = createEffect(
() =>
this.router.events.pipe(
filter(event => event instanceof NavigationEnd),
withLatestFrom(this.observable1$, this.observable1$),
tap(([routerEvent, observable11Value, observable12Value]) => {
if (this.router.url.includes(observable11Value) && !this.router.url.includes(observable12Value)) {
this.router.navigate([`/home/${observable11Value}`]);
}
})
),
{ dispatch: false }
);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)