gpt4 book ai didi

Angular : Updating property of passed object in child component updates parent component, 更新其值没有,为什么?

转载 作者:行者123 更新时间:2023-12-02 08:04:48 24 4
gpt4 key购买 nike

Angular 中有一种我不太了解的行为。假设我有两个组件: parent 和 child 。父组件将数据传递给子组件。

在子组件中:

  • 当传递的对象的属性更新时,对象更新父子组件 .
  • 当对象值更新时,父组件不更新 .


  • 不知道我说清楚了没有,所以做了这个 笨蛋 :

    http://next.plnkr.co/edit/PnlotZxt3DLbAGAF?open=lib%2Fapp.ts&deferRun=1&preview

    点击“更新薪水”以更新员工对象的薪水属性。
    点击“更新员工”以更新员工对象值。

    有人可以解释一下这种行为吗?我虽然使用括号和 @Input() 仅用于单向数据绑定(bind),但现在我很困惑。

    谢谢!

    最佳答案

    它的对象引用问题。只要对象具有相同的引用,就可以检测到更改。

    在您的情况下-您将新值分配给 employee在破坏链的子组件中。现在 Parent 指向不同的 employee object 和 child 指的是不同的employee .

    简而言之,您始终需要确保您可以更改对象的属性,但不应将(引用更改)重新分配给其他对象。

    在你的例子中,我修改了从

    this.employee = this.employee2;


    Object.assign(this.employee,this.employee2);  // this will change the existing object.

    关于Angular : Updating property of passed object in child component updates parent component, 更新其值没有,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52741486/

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