Typescript的getter / setter属性数组返回错误的值

时间:2019-12-09 15:31:27

标签: javascript angular typescript

在我的组件中,我有一个名为data的数组,我需要在不同的部分设置值。我在@Input中添加了一个名为additionalValues的新数组参数。现在,我需要通过将value传递到data来连接新参数中的值。这是我的代码:

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];
    }
}

问题出在哪里?当我尝试从data获取值时,我得到的是数组的大小而不是值,而当我使用find方法时,会出现错误:

this.data.find(x => ...);

我尝试用getter方法打印_data数组的值,没关系。我也尝试使用setter方法的and打印_data,但这总是可以的。

1 个答案:

答案 0 :(得分:0)

我认为,唯一的遗漏是,当AdditionalValues输入发生更改时,只是要更新您的数据内容:

ngOnChanges(){
    this.data = [] ;
  }

或者等到下一个setter调用来更新数据。