gpt4 book ai didi

angular - 更新绑定(bind)对象的内容时不会触发 onChanges

转载 作者:行者123 更新时间:2023-12-01 15:35:20 25 4
gpt4 key购买 nike

我在组件中有父子关系。如果我更新父组件中的值绑定(bind)对象,那么它必须在子组件中通知。

子组件

export class childComponent implements OnChanges {
@Input() data = { name: "Datta" };

ngOnChanges() {
console.log('updated');
}

ParentComponent.html

<child-com [data]="localData"></child-com>
<button (click)="buttonClick()">changeData</button>

父组件

 export class ParentComponent  {
localData: any;

buttonClick() {
this.localData.name = "sagar";
}

如果我更改绑定(bind)对象的引用,那么它会反射(reflect),但如果我更新对象中的特定值,那么它不会反射(reflect)。

最佳答案

这就是 Angular 变更检测的工作原理。如果对象引用没有更改,则绑定(bind)的子组件将不会调用其 onChanges 方法。您将需要更新引用。示例:

this.localData = {
...this.localData,
name: "sagar",
}

关于angular - 更新绑定(bind)对象的内容时不会触发 onChanges,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51969671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com