Я проверил все существующие темы здесь и провел довольно много дополнительных действий по устранению неполадок. Эта проблема беспокоит меня уже несколько недель, и я не знаю, что делать.
У меня есть архитектура redux в angular7, и я просто отправляю действия для изменения логического значения в моем хранилище redux.
В моем app.component.ts я подписываюсь на это «обещание» из хранилища redux и на основе его значения меняю локальную переменную, которую я привязываю к элементу HTML с помощью ngClass, например:
В разметке HTML в app.component.html:
<mat-progress-bar class="loadingSpinner"
[ngClass]="hiddenSpinner" mode="indeterminate"></mat-progress-bar>
В моем контроллере в app.component.ts:
ngOnInit() {
this.loadingSubscription = this.isLoading.subscribe(data => {
if(data == true){this.hiddenSpinner = "" } else { this.hiddenSpinner = "hiddenSpinner"}
})}
Мое действие Redux:
case START_LOADING: if(INITIAL_STATE.isLoading == false)
{ return startLoading(state, action) } else { return };
Но ошибка сохраняется!
Ошибка позволяет мне на 100% быть уверенным, что это из-за конкретной переменной.
Ошибка не появляется, если я просто отключу этот элемент html.
isLoading
изменяется, пока выполняется обнаружение изменений. Может попробоватьthis.loadingSubscription = this.isLoading.pipe(delay(0)).subscribe(...)
. (Я думаю, что это может вызвать другое обнаружение изменений, поэтому используйте его с осторожностью). - person sloth   schedule 06.11.2018