输入'字符串| result[]' 不可分配给类型 'NgIterable<result> |空|不明确的'

时间:2021-07-09 15:16:06

标签: javascript angular key-value ngfor

我正在尝试在我的网络应用程序上显示从 Firebase 数据库检索的文档(对象)。我正在使用的对象具有以下接口/类型

export interface seasonResultsObject {
  sport: string;
  country: string;
  league: string;
  season: string;
  results: result[];
}

我只想显示结果数组——它本身就是一个对象数组。我不想显示所有其他键值对。有鉴于此,我构建了以下模板:

<div class="container">
  <app-workspace-nav></app-workspace-nav>
  <div *ngFor="let key of seasonDocument | keyvalue">
    <div *ngIf="key.key === 'results'">
      <!-- {{key.value}} -->                       
      <div *ngFor="let result of key.value">
        {{ result }}
      </div>
    </div>
  </div>
</div>

逻辑如下:遍历文档中的所有键值对,如果找到结果键,则显示(仅)该键值对的值 - 该行现在被注释掉了,但它完美无缺在页面上显示对象列表如下:

[object Object],[object Object],[object Object],[object Object],[object Object]

问题是这段代码:

      <div *ngFor="let result of key.value">
        {{ result }}
      </div>

逻辑上应该通过 key.value 进行交互,result 是类型为 error TS2322: Type 'string | result[]' is not assignable to type 'NgIterable<result> | null | undefined'. 6 <div *ngFor="let result of key.value"> 的对象的数组/列表,但我收到以下错误:

export interface result {
  [key: string]: any;
  Div: string;
  Date: number;
}

作为参考,结果对象如下所示:

toPromise()

关于我做错了什么以及如何修复它,我希望能有一些想法。提前致谢。

1 个答案:

答案 0 :(得分:0)

我解决了以下问题:

onPressed: () => press(),

但仍然不知道为什么我在原始问题上有错误 - 从逻辑上讲它应该有效......也许有人仍然可以给我指导。