Property 'filter' does not exist on type 'Observable' 报错解决方法

我想做的是监听地址参数变化:

import 'rxjs/operator/filter';

//...

this.router.events
  .filter((event:Event) => event instanceof NavigationEnd)
  .subscribe(x => console.log(x))

但报错如下图显示:

解决方法:

对于RXJS 5.x版本:

import 'rxjs/add/operator/filter';

对于RXJS 6.x 版本:

import { filter } from 'rxjs/operators';
import { filter } from 'rxjs/operators';

// ..

 this.router.events.pipe(
   filter((event:Event) => event instanceof NavigationEnd)
 ).subscribe(x => console.log(x))
import 'rxjs/operator/filter'; // This is valid import statement.
                               // It will import the operator without 
                               // modifying Observable prototype
// ..

// Change how the operator is called
filter.call(
   this.router.events, 
   (event:Event) => event instanceof NavigationEnd
).subscribe(x => console.log(x));

猜你喜欢

转载自blog.csdn.net/qq_29483485/article/details/81511488