angular-cli版本是6.0.8,rxjs版本是6.3.3。
我正在遵循一个教程,并出现错误:无法解析“ rxjs / Rx”。我该如何解决错误?有没有办法可以使用早期版本的rxJS?
代码如下:
service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class Service {
constructor(private _http: HttpClient) {
}
getPosts(): Observable<any> {
return
this._http.get("http://jsonplaceholder.typicode.com/posts");
}
}
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { HttpClientModule } from '@angular/common/http';
import { Service } from './service';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule
],
providers: [HttpClientModule, Service],
bootstrap: [AppComponent]
}) 导出类AppModule {}
app.component.ts
import { Component, OnInit } from '@angular/core';
import { Service } from './service';
import 'rxjs/Rx';
@Component({
selector: 'app-root',
template: `
<ul>
<li *ngFor="let post of _posts">
<b>{{post.title}}</b> {{post.body}}
</li>
</ul>
<div *ngIf="_error">
Error: {{_error.status}}:{{_error.statusText}}
</div>
`,
styles: ['div {font-size:20px;padding:5px;background-
color:red;color:white}']
})
export class AppComponent implements OnInit {
_posts = [];
_error;
constructor(private _service: Service) {}
ngOnInit() {
this._service.getPosts()
.subscribe(
response => {
this._posts = response;
},
error => {
this._error = error;
}
);
}
}
答案 0 :(得分:1)
使用Rxjs V6及更高版本时。 Rxjs使基于路径的导入成为可选。
import 'rxjs/Rx';
为什么需要此导入?未在组件中使用RX。请删除并尝试(如果不需要)。
答案 1 :(得分:0)
确保 rxjs-compat 库也包含在pakage.json文件中