ngFor에서 전달 된 입력 속성의 중요한 변경 사항을 DoCheck가 감지하는 데 사용합니다. 정상적으로 작동합니다. 그러나 일부 변경 (ngFor에 의해 반복되는 배열에서 하나의 항목 제거) 할 때 내 자식 구성 요소는 변경 사항을 보지 않고 자체 렌더링하지 않습니다.DoCheck 이후 각도 2 입력 특성 변경이 각도로 감지되지 않음
내가 뭔가 잘못했을 수 있습니까?
ngDoCheck() {
console.log('zz');
var changes = this._differ.diff(this.schedulerData);
console.log(changes);
if(changes) {
changes.forEachAddedItem(r => {
console.log(r);
if (r.key === 'tasks') this.launchScheduler();
});
}
}
ngOnInit() {
console.log(this.schedulerData);
} /* !ngOnInit */
ngOnChanges(changes: {[propertyName: string]: SimpleChange}) {
for (let propName in changes) {
if (propName === 'schedulerData') {
console.log(changes[propName]);
}
}
}
배열을 변경할 때 변경 사항이 반영되지 않는 문제입니까? –
예. 배열 항목이 있고 * ngFor를 통해 반복합니다. 이 ngFor에서 나는 자식 구성 요소 (위에서 볼 수있는 코드)를 가지고 있으며 정상적으로 작동합니다. 그러나이 항목의 길이를 변경하면 DoCheck (* ngFor re-iterate correct)와 같은 자식 구성 요소가 정상적으로 다시 렌더링되지 않지만 구성 요소가 OnInit 등을 실행하지 않습니다. 이유 및 이유를 이해하지 못합니다. 내가 어떻게 이걸로 싸울 수 있는지. – Velidan