鸿蒙ForEach渲染使用

98 阅读1分钟

foreach作为组件渲染函数为鸿蒙中非常常见的函数,经常使用foreach进行列表及组件的渲染,是鸿蒙UI构建的大杀器

因此我们需要了解foreach的用法,

ForEach:循环渲染

ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。

示例代码

不建议使用基本类型作为数组元素,当数据源重复时,会造成缺失,建议使用对象数组作为数组传入。

先定义一个数组元素类型的接口,Id为数组的唯一标识,可以作为数组中唯一的键使用

接口定义

interface content{
  num:string
  id?:string
}

数据源

@State nums:content[]=[
{num:'1',id:"1"},
  {num:'1',id:'2'},
  {num:'1',id:'3'}
]

静态布局

Column(){
  Button('change arr').onClick(()=>{
    this.nums.push({num:"99",id:"4"})
    this.nums[0]={num:"43",id:'1'}
    this.nums=[...this.nums]
    console.log(`nums:${JSON.stringify(this.nums)}`)
  })
  //我们使用foreach三种传入参数方式进行构建,可以减少性能的开销
  ForEach(this.nums,(item:content,index:number)=>{
    Text(`content:${item.num}`)
  },(key:content)=> {
    ```
return JSON.stringify(key)+'_'+index

  })

}.width('100%')
.height('100%')

image.png

image.png