angular - Observable.of 不是正确导入的函数
问题描述
我在导入 Angular 6 中可观察的“of”方法时遇到问题,即使安装了全新的项目,所有更新的包,我仍然得到错误。所以,我做了一个小项目
这是提供的服务
import { Injectable } from '@angular/core';
import { TableRow } from './table-row';
import { Observable, of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class TestTableService {
private testData : TableRow[] = [
{id:1, name:'pi', value:3.14},
{id:2, name:'euler', value:2.71},
{id:3, name:'Feigenbaum constant', value:2.50290},
{id:4, name:'Mills constant', value:1.30637},
{id:5, name:'one', value:1},
{id:6, name:'square root of 2', value:1.41421}
];
constructor() { }
public getData() : Observable<TableRow[]>
{
return Observable.of(this.testData);
}
}
这是使用它的组件:
import { Component, OnInit } from '@angular/core';
import { TestTableService } from './../test-table.service';
import { TableRow } from './../table-row';
@Component({
selector: 'app-test-table',
templateUrl: './test-table.component.html',
styleUrls: ['./test-table.component.css']
})
export class TestTableComponent implements OnInit {
tableData : TableRow[] = [];
constructor(private testTable : TestTableService) { }
ngOnInit() {
this.testTable.getData()
.subscribe(table => this.tableData = table);
}
}
请注意,导入与其他问题相同
项目 package.json:
{
"name": "angular-table-test",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^6.0.2",
"@angular/cdk": "^6.1.0",
"@angular/common": "^6.0.2",
"@angular/compiler": "^6.0.2",
"@angular/core": "^6.0.2",
"@angular/forms": "^6.0.2",
"@angular/http": "^6.0.2",
"@angular/material": "^6.1.0",
"@angular/platform-browser": "^6.0.2",
"@angular/platform-browser-dynamic": "^6.0.2",
"@angular/router": "^6.0.2",
"core-js": "^2.5.4",
"hammerjs": "^2.0.8",
"rxjs": "^6.0.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular/compiler-cli": "^6.0.2",
"@angular-devkit/build-angular": "~0.6.3",
"typescript": "~2.7.2",
"@angular/cli": "~6.0.3",
"@angular/language-service": "^6.0.2",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~1.4.2",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1"
}
}
可能是什么问题呢?
解决方案
在rxjs
6.x 中,of
不再是Observable
.
因此,Observable.of(…)
您只需调用 ,而不是调用of(…)
。
从5.x 升级到 6+时,请参阅此处了解此信息和其他迁移信息。rxjs
推荐阅读
- php - Laravel 通知在群组频道中添加用户的提及
- c++ - 如何将流大小转换为其他或如何将流大小值传递给向量?
- python - 将matlab数据导出到python
- base64 - rfc2045 中的 MIME base64 编码歧义
- c - 如何仅为某些子进程等待()并防止僵尸
- node.js - 在 Google App Engine 处理 /_ah/start 路由 NodeJ
- javascript - Asp.net RadiobuttonList onselectedindexchanged 确认
- java - 在 Akka 中使用 SLF4J
- python - 如何确定一个类是否由另一个类中的方法实例化?
- c# - UI上的Unity3D粒子系统不会在构建中显示