更新聚合物2对象数组显示重复值吗?

时间:2019-07-02 02:04:01

标签: arrays polymer-2.x

我正在尝试更新纸张下拉菜单。第一次更新后,我看到options数组正确显示了附加在数组上的新项。

该数组的任何后续添加都会发生此问题,对于我添加的所有先前项目,都会看到新值。

有什么想法为什么会发生以及如何解决?

尝试:

this.options.push(myNewOption);

this.push('options', myNewOption);

预期:

第一次添加:

this.options
0: {'john', 'smith'}
1: {'one', 'one'}

这很好。

第二次添加:

this.options
0: {'john', 'smith'}
1: {'one', 'one'}
2: {'two', 'two'}

索引1现在显示第二个添加项的名称!

第三次添加:

this.options
0: {'john', 'smith'}
1: {'one', 'one'}
2: {'two', 'two'}
3: {'three', 'three'}

实际:

例如: 第一次添加:

this.options
0: {'john', 'smith'}
1: {'one', 'one'}

这很好。

第二次添加:

this.options
0: {'john', 'smith'}
1: {'two', 'two'}
2: {'two', 'two'}

索引1现在显示第二个添加项的名称!

第三次添加:

this.options
0: {'john', 'smith'}
1: {'three', 'three'}
2: {'three', 'three'}
3: {'three', 'three'}

1 个答案:

答案 0 :(得分:0)

您需要使用this.pushthis.set来更改聚合物组件的属性,以便聚合物知道何时重新渲染材料。因此,使用

this.push('options', myNewOption);

是正确的方法。请参见Documentation