[英]Polymer 3 lit-element: Array Object changes not picked up by requestRender
我有一個對象如下。 現在,當我更改屬性並調用requestRender時,它不會觸發。 據我所知,沒有檢測到屬性更改。 我該如何實現?
static get properties() { return { items: Object } } constructor() { super(); this.items = { list: [{ a: 5, b: 6 },{ a: 5, b: 6 }] } } onClick() { this.items.list[1].a = 10; //change property requestRender(); //doesn't pick up the change... }
lit-element要求您不變地管理屬性,因此要更新該數據點,將需要執行以下操作:
onClick() {
let list = this.items.list.slice();
let item = Object.assign({}, list[1]);
item.a = 10;
list[1] = item;
this.items = {
list: list
};
// will update on it's own with out a render request
}
上面的內容非常完整,但是ES5(ish)可以解決此問題。 也可以使用更現代的JS來做到這一點,從而使其更易於管理。
onClick() {
this.items.list[1].a = 10;
this.items = {
...this.items
};
// will update on it's own with out a render request
}
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.