![](/img/trans.png)
[英]Angular 4: `ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked
[英]Angular 2+ ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked
我的應用有親子關系。 在父級中,我包括以下子級選擇器:
<app-chip-list [ocoChipItems]="getChipItems(row['status'])"></app-chip-list>
請注意,傳遞給子級的數據必須通過父級的getChipItems()方法中的邏輯導出。
盡管該應用程序似乎可以正常運行,但它在控制台中拋出“ ExpressionChangedAfterItHaHasBeenCheckedError:表達式已被檢查后更改”。
我通過在父組件的聲明中添加以下內容來解決此問題:
changeDetection: ChangeDetectionStrategy.OnPush
我不完全了解這是什么。 因此,我不確定這是否是合適的解決方案。
感謝您的反饋意見。
在我的應用程序中加載表格時,將在單元格上調用一個函數以確定其值。 這導致值從null更改為其他值,從而導致問題。 因此,我強制從表中加載數據后進行更改檢測。 這是通過預訂表的數據源上的屬性來完成的,該屬性在將數據加載到表中后會發出事件。
this.dataSource.loading$.subscribe(() => {
this.cdr.detectChanges();
});
我將此代碼添加到ngOnInit()方法的末尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.