Я использую Angular 8 .
У меня есть дочерний компонент с одним свойством @Input()
. Этот вход необходимо изменить перед привязкой и, таким образом, использовать метод для возврата данных для привязки, например
<app-child [info]="getInfo()"></app-child>
. И в родительском компоненте getInfo()
возвращает значение, например
getInfo(): any|null {
console.log('called...');
if (this.data) {
return JSON.parse(this.data);
}
return null;
}
Но таким образом, метод вызывается снова и снова всякий раз, когда в дочернем компоненте происходит какое-то событие.
Пример Stackblitz: https://stackblitz.com/edit/angular-child-com
Произведите ошибку:
Форма отображается из дочернего компонента, который принимает входные данные от метода, как описано выше.
Нажмите любую кнопку или поле ввода, и вы увидите строку печати журнала консоли из вызова метода с каждым событием .
Это приводит к многократному запуску события OnChange
в дочерних компонентах.