我不断收到此错误:找不到“对象”类型的不同支持对象“[对象对象]”。 NgFor 只支持

Posted

技术标签:

【中文标题】我不断收到此错误:找不到“对象”类型的不同支持对象“[对象对象]”。 NgFor 只支持【英文标题】:I keep getting this ERROR: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports 【发布时间】:2021-03-17 00:55:05 【问题描述】:

我不断收到此错误,但我不知道该怎么办: 错误错误:找不到类型为“object”的不同支持对象“[object Object]”。 NgFor 只支持绑定到数组等Iterables

这是我的服务

 recupererHistorique(idCitoyen:number): Observable<Historique[]> 

    let url = 'http://localhost/tpSyn/getHistoriqueCitoyen.php?idCitoyen=' + idCitoyen;
    return this.http.get<Historique[]>(url); 
   
  

这是组件

export class HistoriqueComponent implements OnInit 

  
 @Input() historiquee:Historique;
 historique: Historique[]; 
 selectionActive:boolean = true;
 
  constructor(private serviceCovid: CovidTraceService)  

  ngOnInit(): void 
  

  surChangementCitoyen()
    
  //this.historiquee = null;
  

  

  
  surChangementHistorique(his: Historique)
    this.serviceCovid.recupererHistorique(his.id).subscribe(histo => this.historique = histo);
    
  
  
 

还有 html

  <section *ngIf="historiquee" >
    
    <div >
        <ol >
            <li *ngFor='let hiss of historiquee'> hiss.date: hiss.description </li>
        </ol>
    </div>

     
    </section>

在 HTML 中,如果我使用它,它可以工作,但它显示一行,我希望它显示所有其他行,这就是我想使用 *ngFor 的原因

  <div>
            <ol>
                <h3>
                    <li> historiquee.date: historiquee.description </li>
                </h3>

            </ol>
        </div>

【问题讨论】:

数组中没有任何内容。隐藏 ngFor 直到数据存在。 如何隐藏它? 你能console.log 并显示你的历史类型是什么。看起来它是一个date: 1, description: 2 类型的对象。应该是[ ... ] 当我 console.log 显示未定义 【参考方案1】:

ngFor 只能遍历一个数组,这意味着结果必须是一个数组!它不能是不可迭代的 undefined 或 null。

所以在使用 ngFor 时,您需要有一个空数组或填充数组。

确保您的服务通过控制台登录结果正确返回一个数组。

this.serviceCovid.recupererHistorique(his.id).subscribe(histo =&gt; console.log(histo));

如果您的服务可能返回 undefined,请将您的值与空数组进行比较。

historique: Historique[] = [];

【讨论】:

当我 console.log 它显示 [ ] @Aviad 尝试用空数组初始化值,看看能否解决问题 historique: Historique[ ] = [ ]; 你能发布返回值吗?您似乎正在尝试访问数组中的对象键。你确定你总是得到钥匙的日期和描述吗? 这是我要返回的数据 [ "id": "482", "dateInfec": null, "idCitoyen": "2952", "description": "en test", “日期”:“2020-11-01”,“id”:“483”,“dateInfec”:null,“idCitoyen”:“2952”,“描述”:“中性”,“日期”:“2020 -11-06" ] 尝试控制台记录下一件事并确保得到相同的结果:``` this.serviceCovid.recupererHistorique(his.id).subscribe(histo => this.historique = histo; console.log(this.historique)) ```;验证你的数组是否存储正确。【参考方案2】:

好的,成功了 我有错误的 id 它是 his.idCitoyen 不是 his.id

 surChangementHistorique(his: Historique)
    this.serviceCovid.recupererHistorique(his.idCitoyen).subscribe(histo => this.historique = histo);

【讨论】:

【参考方案3】:

ngFor只支持Array等Iterables,所以不能用于Object

【讨论】:

以上是关于我不断收到此错误:找不到“对象”类型的不同支持对象“[对象对象]”。 NgFor 只支持的主要内容,如果未能解决你的问题,请参考以下文章

rxjs 将 5 升级到 6。找不到“对象”类型的不同支持对象“”

错误:找不到类型为“object - Angular 7”的不同支持对象“[object Object]”[重复]

找不到'number'类型的不同支持对象'33 .265625'

受“错误:找不到不同的支持对象”影响的 Primeng

无法创建“applicationdbcontext”类型的对象。对于设计时支持的不同模式错误

错误 TS2318:找不到全局类型“对象”