Пожалуйста, объясните мне, почему я продолжаю получать эту ошибку: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.
Очевидно, я получаю это только в режиме разработки, этого не происходит в моей производственной сборке, но это очень раздражает, и я просто не понимаю преимуществ наличия ошибки в моей среде разработки, которая не отображается в продукте - - вероятно, из-за моего непонимания.
Обычно исправить это достаточно просто, я просто помещаю код, вызывающий ошибку, в setTimeout следующим образом:
setTimeout(()=> {
this.isLoading = true;
}, 0);
Или принудительно обнаружить изменения с помощью такого конструктора constructor(private cd: ChangeDetectorRef) {}
:
this.isLoading = true;
this.cd.detectChanges();
Но почему я постоянно сталкиваюсь с этой ошибкой? Я хочу понять это, чтобы избежать этих хакерских исправлений в будущем.