《鸿蒙开发-答案之书》集合传单个值给Component,Component修改了这个值,集合里面的值会不会变呢
先说答案:会变
简单示例代码:
Grid() {
ForEach(this.listGreetingUser, (ext: ListGreetingUserBean,index:number) => {
GridItem() {
ItemView({item:ext,index:index})
}
.height(50)
},(ext: ListGreetingUserBean) => JSON.stringify(ext))
}
.columnsTemplate('1fr 1fr 1fr')
.columnsGap(20)
.rowsGap(20)
.width('100%')
.scrollBar(BarState.Off)
.maxCount(this.listGreetingUser?.length-1) // 设它自适应高度
.padding({
left:24,
right:24
})
@Component
struct ItemView{
@State item:ListGreetingUserBean = {select:true}
index:number = 0
build() {
Stack(){
Image(this.item.headImg)
.width(50)
.height(50)
.borderRadius(25)
Image(this.item.select?$r('app.media.ic_batch_greet_selected'):$r('app.media.ic_batch_greet_unselected'))
.width(17)
.height(17)
.onClick(()=>{
this.item.select = !this.item.select
})
}
.alignContent(Alignment.BottomEnd)
}
}
看代码你改变的是当前item的值,但是集合listGreetingUser对应的值也是改了的。
有鸿蒙开发需求或者问题的可以私信我,我每天都看私信的