类型 '{}[]' 不能分配给离子 2 中的类型 'Observable<any[]>'



我在离子 2 中工作。我正在尝试从火力基地获取 json。我使用了可观察但显示错误。这是我的家。

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { DetailsPage} from'../details/details';
import { MyProvider } from '../../providers/my/my';
import  'rxjs/Rx';
import {Observable} from 'rxjs/Observable';
@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
    donorList: Observable<any[]>;
 constructor(public nav: NavController, public data: MyProvider) {
    this.data.loadData().subscribe(k => {
   this.donorList = k;
});      
   }

}

我的 JSON 文件是

{
    "s2pDonors": [{
            "name": "Dinesh",
            "bldgrp": "o+",
            "city": "Nagpur"
        }, {
            "name": "Dinesh",
            "bldgrp": "o+",
            "city": "Nagpur"
        },
        {
            "name": "Suresh",
            "bldgrp": "A+",
            "city": "Nagpur"
        },
    ]
}

创建安卓.apk文件时,它向我显示以下错误

Type '{}[]' is not assignable to type 'Observable<any[]>'.
      L64:   this.data.loadData().subscribe(k => {
      L65:  this.donorList = k;
      L66:   console.log(this.donorList);

我的提供程序定义了 loadData(( 函数

export class MyProvider {
    list : Array<any>;
  constructor(public afd: AngularFireDatabase) {
}
loadData()
  {
    return this.afd.list('/s2pDonors/').valueChanges();
  };
  }

任何人都可以提供帮助...

在你的构造函数中,你订阅了一个可观察量,所以你从该可观察量接收的数据不是可观察量。换句话说,变量 K 不是可观察的。因此,您需要从数据列表中删除可观察。这是您需要更改的代码

export class HomePage {
    donorList;
 constructor(public nav: NavController, public data: MyProvider) {
    this.data.loadData().subscribe(k => {
   this.donorList = k;
});      
   }

附注:

如果要返回可观察量,则需要订阅主题。以下是有关可观察与主题的详细信息

相关内容

  • 没有找到相关文章

最新更新