gpt4 book ai didi

javascript - polymer 3 发光元件 : Array Object changes not picked up by requestRender

转载 作者:行者123 更新时间:2023-11-29 17:44:15 26 4
gpt4 key购买 nike

我有一个对象如下。现在,当我更改属性并调用 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
}

希望对您有所帮助。

关于javascript - polymer 3 发光元件 : Array Object changes not picked up by requestRender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51313608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com