Javascript Typescript getter/setter属性数组返回错误的值
在我的组件中,我有一个名为Javascript Typescript getter/setter属性数组返回错误的值,javascript,angular,typescript,Javascript,Angular,Typescript,在我的组件中,我有一个名为data的数组,我需要在不同的部分设置值。我在@Input中添加了一个名为additionalValues的新数组参数。现在,我需要将传递的值转换为数据在新参数中计算值。这是我的密码: protected data: any[]; protected additionalValues: any[]; 我以这种方式更改了代码: private _data: any[] = []; get data(): any[] { return this._data; }
data
的数组,我需要在不同的部分设置值。我在@Input
中添加了一个名为additionalValues
的新数组参数。现在,我需要将传递的值
转换为数据
在新参数中计算值。这是我的密码:
protected data: any[];
protected additionalValues: any[];
我以这种方式更改了代码:
private _data: any[] = [];
get data(): any[] {
return this._data;
}
set data(value) {
this._data = value;
if (this.additionalValues != null && this.additionalValues.length > 0) {
this._data = [...this.additionalValues, ...value];
}
}
问题出在哪里?当我尝试从数据
中获取值时,我得到的是数组的大小而不是值,当我使用查找
方法时,我会得到一个错误:
this.data.find(x => ...);
我试着用getter方法打印
\u data
数组的值,结果没问题。我还尝试在setter方法的and处打印\u数据
,但始终没有问题。我认为唯一缺少的是在附加值输入更改时更新数据内容:
ngOnChanges(){
this.data = [] ;
}
或者等到下一次setter调用更新数据。您能告诉我们您在哪里设置数据变量的代码吗?@Z.Bolbol我通常这样设置值:
this.data=this.clone(this.allData)代码>。在clone中,我只需执行以下操作:JSON.parse(JSON.stringify(obj))
。私有财产\u data
当数据
错误时,它是正常的这是什么。您上面提到的所有数据
?它不在问题中的代码片段中,您发布的代码工作正常。请创建一个数据库,它是来自服务器的数据副本。但在这种情况下,这并不重要,因为当我调用this.data时,我的私有属性\u data
具有正确的值。在getter中,我只需返回数据代码>。如果我打印console.debug(“DATA:,this.DATA,this.\u DATA)
我将看到12数组(12)[]