请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

引入 rxjs 失败

用的 IDE 是 vscode,IDE 可以提示路径。

https://img1.sycdn.imooc.com//szimg/5b15626a0001063610540546.jpg

但是使用 filter 函数的时候就会报错,

https://img1.sycdn.imooc.com//szimg/5b1562fd00011a3b08580288.jpg

并且服务器也报错,

https://img1.sycdn.imooc.com//szimg/5b1563a200018a5616820236.jpg

看过问答后,尝试引入 'rxjs/Rx' 同样报错,请问应该怎么办。

正在回答 回答被采纳积分+3

2回答

炫酷的少年 2018-06-22 10:56:50

'Can't resolve 'rxjs/add/operator/filter'我也出现这样的错误,解决方式是这样的,根据angular中文文档Rxjs库页面对RXjs的使用:

pipe() 函数也同时是 RxJS 的 Observable 上的一个方法,所以你可以用下列简写形式来达到同样的效果:

{ filter, map } from 'rxjs/operators';
const squareOdd = of(1, 2, 3, 4, 5)
  .pipe(
    filter(n => n % 2 !== 0),
    map(n => n * n)
  );
  // Subscribe to get values
  squareOdd.subscribe(x => console.log(x));

这样,改造使用filter的代码

import { filter, map } from 'rxjs/operators';
constructor(public router: Router) {
const squareOdd=router.events.pipe(
filter(event => event instanceof NavigationEnd)
)
squareOdd.subscribe((event:NavigationEnd) => {
if(event.url == '/dashboard'){
this.pageTitle = '这里是首页';
this.pageDesc = '';
}else if(event.url.startsWith('/stock')){
this.pageTitle = '信息管理';
this.pageDesc = '进行信息基本增删改查';
}
});
}

结果:正常运行!

5 回复 有任何疑惑可以回复我~
JoJo 2018-06-08 08:28:40

你的报错信息里写着 'Can't resolve 'rxjs/add/operator/filter' ,你引入rxjs/Rx以后要把这行引入去掉。 

0 回复 有任何疑惑可以回复我~
  • 提问者 starkShang #1
    后来发现我用了新版本的 rxjs,使用 filter 应该放在 pipe 函数中。
    或者 import { map, filter, switchMap } from 'rxjs/operators';
    回复 有任何疑惑可以回复我~ 2018-06-10 15:01:33
  • 鼓舞飞扬 回复 提问者 starkShang #2
    我也报这个错,你能具体描述吗?最好贴上代码
    回复 有任何疑惑可以回复我~ 2018-06-12 16:00:13
  • 油条C #3
    "rxjs": "~6.3.3", 怎么下载 RXJS 5.x
    回复 有任何疑惑可以回复我~ 2018-11-30 15:49:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信