我有一个数组:
const a = [apple,ball,cat]
我将它传递给两个组件:
<app-header [appData]="data" ></app-header> <list-todo [appData]="data" [getData]="getData" [setData]="setData" ></list-todo>
在appHeader组件中,
export class appHeader { @Input('appData') data : any clear(){ this.data = [] } }
执行clear()函数不会影响listTodo组件中的数组.有什么方法可以解决这个问题吗?
我还检查了两种方式绑定属性,但没有任何工作了!
通过执行this.data = [],您不会清空您的数组,而是将其替换为新实例.您的父组件和另一个子组件仍然引用原始实例,这会导致您描述的行为.
原文链接:https://www.f2er.com/angularjs/140838.html一种解决方案是清空原始数组而不是替换它:
clear() { this.data.length = 0; }
这样,所有组件将继续引用相同的数组实例,并且将正确反映其状态.