Angular 不会导入显示错误的 Rxjs

Posted

技术标签:

【中文标题】Angular 不会导入显示错误的 Rxjs【英文标题】:Angular won't import Rxjs showing error 【发布时间】:2018-11-20 10:42:24 【问题描述】:

我在我的 Angular 应用程序中从 db 导入数据时遇到问题,确切地说,我认为我的代码是正确的,但我在导入 Rxjs 时遇到问题。我将在这里发布我的代码:

import Component, Directive from '@angular/core';
import FormGroup, FormControl from '@angular/forms';
import Http, Response, Headers from '@angular/http';
import Router, ActivatedRoute, Params from '@angular/router';
import 'rxjs/Rx';

@Component(
    selector: 'app-room',
    templateUrl: './room.component.html',
    styleUrls: ['./room.component.css']
)
export class classRoomComponent 
    public sobe: any = [];
    http: Http;
    router: Router;
    route: ActivatedRoute;
    data: Object[];
    public id: Number;

    constructor(route: ActivatedRoute, http: Http, router: Router) 
        this.http = http;
        this.router = router;
        this.route = route;
    

    ngOnInit() 

        this.route.params.subscribe((params: Params) => 
            let id = params['id'];
            let headers = new Headers();
            headers.append('Content-Type', 'application/x-www-form-urlencoded');
            headers.append("token", localStorage.getItem("token"));
            this.http.get('http://localhost/hotel/getroom.php?id=' + id, headers: headers).map(res => res.json()).share().subscribe(data => 
                    this.data = data.data;
                ,
                err => 
                    this.router.navigate(['./']);
                
            );
        );
    

我哪里出错了,我该怎么做才能获取数据?或修复导入

ps 这是我为 rxjs 得到的错误: “可观察”类型上不存在属性“地图”。

【问题讨论】:

如果你使用的是rxjs6+,请参考***.com/questions/50340749/… 是的,我相信 6.0 如果你使用 rxjs 6 你需要使用管道操作符 pipe(map(() => )) 和导入什么管道? 并只导入你需要的东西而不是所有的'rxjs',在这种情况下,你需要的所有东西(如我所见)来自'rxjs/operators'import map from 'rxjs/operators'map运算符 【参考方案1】:

在 rxjs6+ 中,您需要使用 pipeable operators,您可以从 'rxjs/operators' 导入它们,在您的情况下,您只需要 mapshare 运算符,因此您的解决方案将如下所示:

import  map, share  from 'rxjs/operators';

然后在代码中使用

this.http.get('http://localhost/hotel/getroom.php?id='+id,headers:headers)
    .pipe(
        map(res => res.json()),
        share()
    )
    .subscribe(() => )

【讨论】:

以上是关于Angular 不会导入显示错误的 Rxjs的主要内容,如果未能解决你的问题,请参考以下文章

Angular 7:ng serve 工作,但控制台显示 Zone.js 错误并且应用程序不会加载

Angular 模块导入和组件使用

如何在 Visual Studio Code 中因缺少导入而突出显示错误?

三个 JS + Angular 7 导入控制器后出现错误 BufferAttribute

带有 JsonpModule 的未定义导入错误 Angular 2

使用 Angular2 DevExtreme 显示和隐藏表单元素