Angular响应式开发源代码如下:
import { Component, OnInit } from '@angular/core';
import {Observable} from 'rxjs';
// import { map } from 'rxjs/operators';
import {Http} from '@angular/http';
@Component({
selector: 'app-http',
templateUrl: './http.component.html',
styleUrls: ['./http.component.css']
})
export class HttpComponent implements OnInit {
dataSource: Observable<any> ;
products: Array<any> = [] ;
constructor(private http: Http) {
this.dataSource = this.http.get('/products')
.map((res) => res.json());
}
ngOnInit() {
this.dataSource.subscribe(
(data) => this.products = data
);
}
}
程序运行时报错:
ERROR in src/app/http/http.component.ts(17,8): error TS2339: Property 'map' does not exist on type 'Observable<Response>'.
即使引入import ‘rxjs/add/operator/map’ ,以及import ‘rxjs/Rx’;也同样出现这种错误。
查阅资料可通过以下方法解决:通过npm install rxjs-compat 命令安装rxjs-compat ,然后重新启动项目,引入import ‘rxjs/add/operator/map’;即可解决。
D:\workDirectory\Angular2\http\http>npm install rxjs-compat
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32"
,"arch":"x64"})
+ rxjs-compat@6.3.3
added 1 package and audited 39134 packages in 35.126s
found 0 vulnerabilities
参考:
https://blog.csdn.net/qq_41348754/article/details/81106265