代码拉取完成,页面将自动刷新
@ObservedV2 Item {
private static nextId = 0;
id : number;
@Trace s : string;
constructor() {
this.id = Item.nextNumber++;
this.s = this.id.toString(); // in reality more complex
}
}
@Entry
@ComponentV2
struct Index {
// next item to add to arr, ensure items are unique.
@Local arr : Array<Item> = [ new Item(), new Item(), new Item(), new Item(), new Item(), new Item() ]
@Local bgColor : Array<string> = [ Color.White, Color.Gray ];
build() {
Column() {
Text('3_repeat_objects.ets')
List() {
Repeat(this.arr)
.virtualScroll()
.every(( repeatItem ) => {
ListItem() {
Button("Replace") {
Text(repeatItem.item.s)
}
.onClick(() => {
// update object property without marking array arr as changed
repeatItem.item.s = "A" + repeatItem.item.s;
})
.height(100)
}
// 2 visible items at a time
// for simplicity assume no offscreen items
.width("100%").height(200)
// can add to explain with index
.backgroundColor(this.bgColor[repeatItem.index % 2])
})
.key(item => item.id.toString())
} // List
Button("Append new item")
.onClick(() => { this.arr.push( new Item()); })
Button("Delete last item")
.onClick(() => { this.Array.pop(); })
Button("Update item index #1")
.onClick(() => { this.arr[1]= new Item(); })
Button("Replace item index #1 with two new")
.onClick(() => { this.arr.splice(1, 1, new Item(), new Item() ); })
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。