Angular'da Expression has changed after it was checked Hatası
Merhaba,
Elbet bir gün sizin de başınıza gelecektir. Angular da bir şey yaptınız, mesela bir form oluşturdunuz ve form elemanının altına da hata için gerekli bir div koydunuz.
Sistem sorunsuz çalışıyordur; fakat console ekranına bakarsanız şöyle bir hata alırsınız.
ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'ngIf: true'. Current value: 'ngIf: false'.
Bu problemi çözmek için aşağıdaki işlemleri yapmanız yeterli olacaktır.
1. Angular core içindeki ChangeDetectorRef abstract sınıfını sisteme import edin
import { ChangeDetectorRef } from '@angular/core';
2. Constructor içinde, dependency injection yapın.
constructor ( private changeDetector: ChangeDetectorRef ) { ... }
3. Son olarak ise, ngAfterContentChecked() metodunu tanımlayın ve içinde ChangeDetectorRef abstract sınıfı içinde bulunan detectChanges() metodunu çalıştırın.
ngAfterContentChecked(): void {
this.changeDetector.detectChanges();
}
Evet, hepsi bu kadar..
Yorum Yap