arkts列表渲染只能渲染一条数据

文章讲述了在Vue或React中,当数组数据变化但列表渲染不更新的问题,解决方法是在`forEach`循环中为每个子项设置唯一的`key`值,这里使用的是索引号作为key。
摘要由CSDN通过智能技术生成

如下图,我的变量是一个数组类型,存在多条值的,但是无论变量里面的值怎么发生变化,渲染出来的数据都还是一条。

此时的代码如下,无论的我的数组发生什么变化,都是只渲染一条数据

//定义的变量
@State data:any = []


//UI代码
List() {
  ListItem() {
    Row() {
      Image('static/icon/rt.png').width(45).margin({ top: 10, bottom: 10, right: 10, left: 0 })
       Text('返回上一层').fontSize(18)
    }.cell()
  }

  ForEach(this.data, (itemValue: any) => {
    ListItem() {
      DeptItem({ item: itemValue }).onClick(() => {
        this.DeptItemChange(itemValue)
      })
    }



   }, (item: any) => item)
}.margin({bottom:70})

解决方法如下,需要在ForEach循环时设置一个每个子项的key值,这样才可以正常渲染

ForEach(this.data, (itemValue: any) => {
       ListItem() {
           DeptItem({ item: itemValue }).onClick(() => {
               this.DeptItemChange(itemValue)
           })
       }

//在这里需要给每个子项设置一个key值,并且保证key值存在,我这个数组比较特殊,只能用index来设置key值
}, (item: any,index:number) => index.toString())

结果如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值