2017-12-20 5 views
0

인 것으로 보입니다 최근 Angular 프로젝트를 4에서 5로 업데이트했습니다. 설명 할 수없는 몇 가지 변경 사항을 발견했습니다.각도 (5) 입력 변수가

저는 ParentComponentChildComponent입니다. ChildComponent은 부모로부터 InputObject을받습니다. 갱신 전에

행동은 : 내 ParentComponentInputObject에 뭔가를 변경하는 경우 ,이 ChildComponent에서 볼 수 있습니다. 갱신 후

행동 : 내 ParentComponentInputObject에 뭔가를 변경하는 경우이 ,이 변화가 ChildComponent에서 발생하지 않습니다.

이 정확한 동작입니까? 그렇다면 여러 구성 요소가 동일한 객체에서 어떻게 작동해야합니까?

+0

나는 또한 Angular 5로 업그레이드했지만 ParentComponent의 InputObject를 변경하면 ChildComponent에 영향을 미칩니다. – DerJP

+0

작업중인 코드를 추가하십시오. –

+0

플 런커에서 작업 할 것입니다. – hY8vVpf3tyR57Xib

답변

0

변경하려는 항목이 특정 속성을 업데이트해야하지만 전체 개체 (예 : var obj = anotherObj)를 업데이트하는 경우 Angular가 원인을 심층 비교하지 않기 때문에 변경 감지를 트리거하지 않습니다. 성능에.

Angular Documentation

항목이 전원 속성이 변경의 문자열 값으로 표시 로그

. 그러나 ngOnChanges는 영웅에 대한 변화를 포착하지 않습니다. 처음에는 놀랍습니다. 각도는 입력 속성 값이 변경 될 때만 후크를 호출합니다. 영웅 속성의 값은 영웅 개체에 대한 참조입니다. Angular는 영웅 자신의 이름 속성이 바뀌어도 상관하지 않습니다. 영웅 개체 참조가 변경되지 않았으므로 Angular의 관점에서보고 할 변경 사항이 없습니다!

+0

ng5에만 해당한다고 생각하지 않습니까? – gyc