HarmonyOS 页面如何根据后台配置动态加载模块

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

参考示例如下:

// DataModel.ets   定义一个class
// 定义一个空的builder
@Builder
function defaultBuilder(): void {
}

// 定义一个class,有对应的WrappedBuilder
export class DataModel {
  id: string = ''
  value: string = ''
  otherProp: string = ''
  builderWrap: WrappedBuilder<[string]> = wrapBuilder(defaultBuilder)
  
  constructor(id: string, value: string, builderWrap: WrappedBuilder<[string]>) {
    this.id = id
    this.value = value
    this.builderWrap = builderWrap
  }
}
// 创建返回的业务对象
// 创建builder组件
@Builder
function CustomBuilder(param: string) {
  Column() {
    Text(param)
      .fontSize(50)
      .fontWeight(FontWeight.Bold)
  }.height(50)
}

let customPageWrappedBuilder: WrappedBuilder<[string]> = wrapBuilder(CustomBuilder);

export function getData(): Promise<DataModel[]> {
  let arr: DataModel[] =
    [new DataModel('1', 'test1', customPageWrappedBuilder), new DataModel('2', 'test2', customPageWrappedBuilder)]
  return new Promise((resolve) => {
    resolve(arr)
  })
}
// 页面使用
import { DataModel, getData } from './DataModel'

@Entry
@Component
struct TestPage {
  testData: DataModel[] = []

  async aboutToAppear() {
    this.testData = await getData()
  }

  build() {
    Row() {
      Column() {
        ForEach(this.testData, (item: DataModel) => {
          item.builderWrap.builder(item.value)
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS如何根据条件加载页面
362浏览 • 1回复 待解决
如何HarmonyOS中实现动态加载模块?
215浏览 • 1回复 待解决
HarmonyOS 页面动态配置
29浏览 • 1回复 待解决
是否支持模块动态加载如何实现
2392浏览 • 1回复 待解决
按需加载场景中加载动态模块失败
1655浏览 • 1回复 待解决
HarmonyOS 页面如何设置全屏显示?
514浏览 • 1回复 待解决
HarmonyOS 页面如何禁止手势返回
44浏览 • 1回复 待解决
HarmonyOS List页面如何主动停止滚动
30浏览 • 1回复 待解决
在hsp子模块如何加载悬浮窗页面
1962浏览 • 1回复 待解决
如何动态根据资源名获取资源id
8664浏览 • 1回复 已解决