navigationend navigate activatedroute angular typescript rxjs angular6 rxjs6

activatedroute - router navigate angular 5



Angular 6 router.events.filter ''filtro'' no existe en el tipo ''Observable<Event>'' (2)

He terminado de actualizar mi aplicación a Angular 6 (estaba en la versión 5.2).

Tengo una sintaxis de error en:

import { Router, ActivatedRoute, NavigationEnd } from ''@angular/router''; import { filter } from ''rxjs/operators''; ... constructor(private router: Router) {} this.router.events.filter (event => event instanceof NavigationEnd).subscribe((res) => { // DO something });

error TS2339: La propiedad ''filtro'' no existe en el tipo ''Observable''.

¿Cuál es la sintaxis correcta en Angular 6?

Gracias


Esta es la forma de filtrar eventos de enrutador con Angular 6+ y el último RxJS:

import { Component, OnInit } from ''@angular/core''; import { Router, ActivatedRoute, NavigationEnd } from ''@angular/router''; import { filter } from ''rxjs/operators''; export class MyComponent implements OnInit { constructor(private router: Router, private activatedRoute: ActivatedRoute) {} ngOnInit() { this.router.events.pipe( filter(event => event instanceof NavigationEnd) ).subscribe(() => { console.log(this.activatedRoute.root); }); } }

Utiliza el operador de pipe lugar de intentar un filtro de cadena en lo observable.


No veo en tu código si importaste filtro

para Rxjs 6:

import { filter } from ''rxjs/operators''; . . . this.router.events.pipe( filter((event:Event) => event instanceof NavigationEnd) ).subscribe(res => console.log(res))