ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked

Angular ExpressionChangedAfterItHasBeenCheckedError: setTimeout vagy ChangeDetectorRef használata a megoldáshoz.

ExpressionChangedAfterItHasBeenCheckedError Angular

Hibaüzenet

ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked

Hibás kód

ngAfterViewInit() { this.title = 'Hello'; }

Javított kód

ngAfterViewInit() { setTimeout(() => { this.title = 'Hello'; }); }

Magyarázat

ExpressionChangedAfterItHasBeenCheckedError Angular hiba akkor fordul elő, amikor egy komponens változását az Angular életciklusán kívül, a nézet ellenőrzése után végzed. Ilyenkor az Angular észleli a változást, és hibát jelez. A megoldás a változtatás késleltetése `setTimeout` segítségével, vagy `ChangeDetectorRef#markForCheck` használata, így a változás egy új ellenőrzési ciklusban történik.

További információ: Angular Error NG0100