Tolong jelaskan kepada saya mengapa saya terus mendapatkan kesalahan ini: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.
Jelas, saya hanya mendapatkannya dalam mode dev, itu tidak terjadi pada build produksi saya, tapi itu sangat menjengkelkan dan saya tidak mengerti manfaat memiliki kesalahan di lingkungan dev saya yang tidak akan muncul di prod - -mungkin karena kurangnya pemahaman saya.
Biasanya, perbaikannya cukup mudah, saya hanya membungkus kode yang menyebabkan kesalahan dalam setTimeout seperti ini:
setTimeout(()=> {
this.isLoading = true;
}, 0);
Atau paksa deteksi perubahan dengan konstruktor seperti ini constructor(private cd: ChangeDetectorRef) {}
::
this.isLoading = true;
this.cd.detectChanges();
Tetapi mengapa saya terus-menerus mengalami kesalahan ini? Saya ingin memahaminya sehingga saya dapat menghindari perbaikan yang tidak rapi ini di masa depan.