在某些情况下使用组件时,Webapp会冻结

时间:2019-07-03 11:07:25

标签: angular typescript rxjs

我正在Angular中构建一个Web应用程序。 我有一个父组件和一个子组件列表。数据由rxjs主题发送。 子组件用于应用程序可工作的另一部分,尽管未在*ngFor结构中使用

即使我在“条目”数组中只有一个元素,Webapp也会冻结。 我尝试只初始化该组件,而没有发送任何“消息”,但是它仍然冻结

调用getter(validEntries)存在无限循环。

此组件可在其他地方按预期使用。 parent.component.html

<div class="option" *ngFor="let entry of entries">
   <app-options-previewer [events]="optionsChanged" [index]="0"></app-options-previewer>
</div>

child.component.html

<mat-chip color="primary" selected *ngFor="let entry of validEntries">{{entry.name}}</mat-chip>
    <mat-chip color="primary" *ngIf="validEntries.length==0">No option selected</mat-chip>

断断续续的吸气剂

 get validEntries(): Array<CommandEntryOption> {
    console.log("valid entries get");
    if (this.entries !== undefined)
      return this.entries.filter(function (value) { return value.quantity > 0 });
    else
      return [];
  }

实际结果:应用程序冻结 预期结果:数组条目中的每个条目都应该有一个子组件。

如果我应该提供更多信息,请提及。

1 个答案:

答案 0 :(得分:1)

问题是将ngfor绑定到吸气剂上。我将其替换为仅存储getter值的属性。我在ngOnInit()上分配了该值,并且每次需要更改它时;