我正在尝试更新纸张下拉菜单。第一次更新后,我看到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'}
答案 0 :(得分:0)
您需要使用this.push
或this.set
来更改聚合物组件的属性,以便聚合物知道何时重新渲染材料。因此,使用
this.push('options', myNewOption);
是正确的方法。请参见Documentation。