Angular ChangeDetectorRef: невозможно прочитать свойство detectChanges из undefined

Я получаю следующую ошибку с ChangeDetectorRef. Не уверен, почему это происходит внезапно, когда другие компоненты используют ChangeDetectorRef. Кто-нибудь знает как решить? Это ссылка на выбор сетки кендо.

TypeError: невозможно прочитать свойство detectChanges из undefined

export class DocumentPropertyGridComponent implements OnInit, OnChanges {

  public documentPropertyGridDataSelected: Array<DocumentPropertyGridData> = new Array<DocumentPropertyGridData>();

  constructor(private cdr: ChangeDetectorRef) { 
  }

  selectTest(e){
    this.documentPropertyGridDataSelected = e.selectedRows;
    this.cdr.detectChanges();
  }

HTML:

<div>
  Selected Count: {{documentPropertyGridDataSelected.length}}
<div>

person Community    schedule 07.07.2020    source источник


Ответы (1)


Вероятно, контекст this (Кстати, как называется функция?). Исправить, преобразовав его в стрелочную функцию

  selectTest = (e) => {
    this.documentPropertyGridDataSelected = e.selectedRows;
    this.cdr.detectChanges();
  }
person mbojko    schedule 07.07.2020
comment
Вау! Я передавал частную функцию как ссылку обратного вызова для подписки! Кажется, что JavaScript немедленно выполнял содержимое функции вместо того, чтобы вызывать ее позже, после срабатывания вызова подписки. Большое спасибо! - person Samer; 18.03.2021