Я изменяю значение для одной директивы Input для моего дочернего компонента из родительского компонента внутри блока подписки. Однако новые значения не обнаружены в дочернем элементе.
Дочерний компонент уже реализует OnChanges
и правильно определяет директивы ввода.
Ниже приведен псевдокод для моих компонентов. Это упрощено от фактического
код для простоты понимания контекста.
РОДИТЕЛЬСКИЙ КОМПОНЕНТ HTML:
<h1>PARENT</h1>
<button (click)="buttonClicked()">NEXT</button>
<child-component [inputChildVar]="parentValue"></child-component>
РОДИТЕЛЬСКИЙ КОМПОНЕНТ TS:
ngOnInit() {
this.parentValue= {
"currentPageNo":5,
"currentPageData": [{"DEVICE":"Kernel1","RANGE":"500Hz"}, {"DEVICE":"Kernel2","RANGE":"500Hz"}]
}
}
buttonClicked()
{
this.parentService.ServiceMethod().subscribe(data=>{
this.parentValue= {
"currentPageNo":data.currentPageNo,
"currentPageData":data.array
}
this.parentValue=JSON.parse(JSON.stringify(this.parentValue))
})
}
КОМПОНЕНТ РЕБЕНКА HTML:
<h1>inputChildVar<h1>
ДЕТСКИЙ КОМПОНЕНТ TS:
import { Component, OnInit, Input,OnChanges } from '@angular/core';
@Component({
selector: 'child-component',
template: '<h1>inputChildVar<h1>',
})
export class ChildComponent implements OnInit,OnChanges
{
@Input() inputChildVar
constructor() { }
ngOnChanges(){
console.log(this.inputChildVar)
}
ngOnInit() {}
}
Ожидаемый результат: при получении ответа от parentService.ServiceMethod при изменении parentValue новые значения должны отображаться на экране через дочерний компонент.
Фактический результат: на экране нет изменений