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..

 

979 Görüntülenme

Yorum Yap