Мутирование чисел во время ожидания с помощью стратегии обнаружения onPush - PullRequest
0 голосов
/ 30 декабря 2018

Я хочу установить значение параметра по умолчанию и изменить его через 2 секунды, вот что у меня есть:

@Input() num: number;

ngOnInit() {
  this.num = 1;
  setTimeout(() => ++this.num, 2000);
}

И в представлении:

{{ num }}

Работаетидеально подходит для стратегии обнаружения по умолчанию, но перестает работать, когда я добавляю changeDetection: ChangeDetectionStrategy.OnPush в декоратор компонента (значение всегда 1 и никогда не меняется).

Почему это так?Я думал, что стратегия onPush сравнивает только ссылки, а присвоение нового целого всегда изменяет ссылку?

1 Ответ

0 голосов
/ 30 декабря 2018
Стратегия

OnPush обнаруживает изменение, когда свойство @Input изменилось из родительского компонента.Вы можете ввести ChangeDetectorRef в ваш компонент.Вы можете найти эту статью полезной.

@Input() num: number;

constructor(private cdr: ChangeDetectorRef){}

ngOnInit() {
  this.num = 1;
  setTimeout(() => {
    ++this.num, 2000;
    this.cdr.detectChanges();
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...