《鸿蒙开发-答案之书》集合传单个值给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 = 0build() {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对应的值也是改了的。
有鸿蒙开发需求或者问题的可以私信我,我每天都看私信的