HarmonyOS 开发基础(九)forEach

HarmonyOS 开发基础(九)forEach

在这里插入图片描述

一、基础使用

在这里插入图片描述

@Entry
@Component
struct Index {
  // 创建一个变量,用来存储图片网络网址
  imageUrl: string = 'https://gw.alicdn.com/imgextra/i2/2201227850912/O1CN01B7gVvP1Ibk6HMiDRz_!!2201227850912.jpg_Q75.jpg_.webp'
  // private:修饰符,不能被外部访问,创建一个变量,存储不同手机型号数据
  private items: Array<Object> = [
    {name: '红米k70', image: this.imageUrl, price: 2499},
    {name: '红米k70', image: this.imageUrl, price: 2499},
    {name: '红米k70', image: this.imageUrl, price: 2499},
    {name: '红米k70', image: this.imageUrl, price: 2499},
    {name: '红米k70', image: this.imageUrl, price: 2499},
    {name: '红米k70', image: this.imageUrl, price: 2499},
  ]
  build() {
    Column({space: 15}) {
      Row() {
        Text('商品列表')
          .fontSize(30)
          .fontWeight(600)
      }
        .width('100%')
        .justifyContent(FlexAlign.Start)


      // ForEach:循环渲染,用来循环渲染页面组件
      ForEach(
        // arr 参数一:遍历循环的数据数组
        this.items,
        // itemGenerator 参数二:页面组件生成函数
        (item) => {
          // 循环渲染的组件
          Row() {
            Column() {
              // 图片路径数据为循序出来的数据的 image 数据
              Image(item.image)
                .width(60)
                .height(90)
                .interpolation(ImageInterpolation.High)
            }
            Column() {
              // 文本名字数据为循序出来的数据的 name 数据
              Text(item.name)
                .fontSize(20)
                .fontWeight(600)
                .margin({bottom: 5})
              // 文本名字数据为循序出来的数据的 price 数据
              Text(`${item.price}`)
                .fontColor('#F36')
            }
              .margin({left: 25})
              .alignItems(HorizontalAlign.Start)
          }
            .width('100%')
            .padding(10)
            .alignItems(VerticalAlign.Top)
            .borderRadius('8')
            .backgroundColor('#ffffff')
        },
        // keyGenerator 参数三:可不填 键生成函数,为数组每一项生成一个唯一标识,组件是否重新渲染的判断标准
        (item, index): string => {
          return item + index
        }
      )
    }
      .width('100%')
      .height('100%')
      .padding(20)
      .backgroundColor('#f0eef0')
  }
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值