Я думаю, что вы путаете с реактивным свойством Observables
и ngOnChanges
крюком жизненного цикла Angular.
ngOnChanges
- согласно документам - это ловушка жизненного цикла, называемая функцией обратного вызова, которая будет вызываться, если у вас есть какие-либо свойства ввода с привязкой к данным, то есть свойства, которые оформлены с использованием @Input
в вашем ангуляре. НИКОГДА не используется для обнаружения каких-либо изменений вашего Observables
.
Отвечать, когда Angular (re) устанавливает связанные с данными входные свойства. Метод получает объект SimpleChanges с текущими и предыдущими значениями свойств.
Вызывается перед ngOnInit () и всякий раз, когда изменяется одно или несколько связанных с данными входных свойств.
Предполагая, что вы следуете Angular docs (из этого видно, что ваш код почти такой же, как пример документа), вы можете видеть, что их код имеет свойства, оформленные с использованием @Input
.
@Input() hero: Hero;
@Input() power: string;
И что эти два свойства фактически «передаются» компоненту через привязку данных, используя квадратные скобки:
<on-changes [hero]="hero" [power]="power"></on-changes>
Так что нет, ngOnChanges
это НЕ место, где вы хотите написать свой код, чтобы реагировать на ваши наблюдаемые изменения. Вы можете написать свой код, чтобы реагировать на изменения @Input
. Observable
subscribe
уже есть для вас, чтобы реализовать все, что вы хотите в случае, если Observables
испустит излучение. И подписаться на ваш Observabels
, да, лучшее место, чтобы сделать это как ngOnInit
ловушка жизненного цикла.