HarmonyOS 封装组件工厂类时遇到的问题

在封装组件工厂类时,遇到一个问题:

@Builder装饰器A里面调用子组件CA,子组件CA用到了@ObjectLink变量c,在父组件中调用A时,传CA所需变量c,运行起来会报错,在A里报错:组件CA中缺少属性c。

请问是不是不支持这样使用。是否有其他解决办法

HarmonyOS 封装组件工厂类时遇到的问题 -鸿蒙开发者社区

HarmonyOS
2025-01-09 14:29:02
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
put_get

请参考以下代码:

import { BuilderParams } from '../model'
import { TabModuleClass } from '../model/TabModel'
import { ObservedArray } from '../utils'

@Component
struct HomeComA {
  @BuilderParam data: ObservedArray<TabModuleClass>
  build() {
    Column() {
      Grid() {
        ForEach(this.data, (item: TabModuleClass) => {
          GridItem() {
            itemView({item:item})
          }
          .padding(6)
          .backgroundColor('#ffffff')
          .border({ width: 1, color: "#DAEBFF" })
          .borderRadius(12)
        }, (item: TabModuleClass) => item.id + '')
      }
      .height(320)
      .padding(4)
      .columnsTemplate('repeat(auto-fit, 70)')
      .columnsGap(10)
      .rowsGap(10)
    }
    .padding({ left: 16, right: 16 })
    .width('100%')
    .height('auto')
  }
}

@Component
struct itemView {
  @ObjectLink item:TabModuleClass
  build() {
    Column(){
      Column() {
        Image(this.item.iconUrl).width(42).height(42)
        Text(this.item.mainName)
          .fontSize(14)
          .textOverflow({ overflow: TextOverflow.Ellipsis })
          .maxLines(1)
          .margin({ top: 6 })
      }.onClick(()=>{
        this.item.mainName = "dd"
      })
    }
  }
}

@Builder
export function comaBuilder(data: BuilderParams) {
  HomeComA({data:data.data})
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
分享
微博
QQ
微信
回复
2025-01-09 16:53:04
相关问题
HarmonyOS 组件封装问题
768浏览 • 1回复 待解决
preferences工具封装
2110浏览 • 1回复 待解决
HarmonyOS 如何封装页面
1271浏览 • 1回复 待解决
flutter混合遇到问题
1335浏览 • 1回复 待解决
求助:Ubuntu编译w800遇到问题
6612浏览 • 1回复 待解决
HarmonyOS Span封装问题
478浏览 • 1回复 待解决
HarmonyOS 是否有封装数据库工具
1042浏览 • 1回复 待解决
HarmonyOS ArrayList 遇到问题
806浏览 • 1回复 待解决
应用导航设计遇到问题
1102浏览 • 1回复 待解决
HarmonyOS 如何书写工厂方法?
690浏览 • 1回复 待解决
HarmonyOS ArrayList 遇到问题
760浏览 • 0回复 待解决
HarmonyOS bindPopup遇到问题
740浏览 • 1回复 待解决
HarmonyOS 使用MMKV库遇到Warning
1364浏览 • 1回复 待解决
如何封装一个通用commonEvent工具
2687浏览 • 1回复 待解决
DevEco补全问题,有遇到吗?
7033浏览 • 1回复 待解决
HarmonyOS 滑动组件问题
743浏览 • 1回复 待解决