HarmonyOS dialog在非组件类中无法弹出

简单示例如下:

class Model {
  title: string
  handler: ()=>void
}

@Component
struct Page {
  dataSource: DataSource // 外部传入
  models: Model[] = this.dataSource.initData()
  build {
  Column() {
    List() {
      ForEach(this.models,(model: Model,index) => {
        ListItem() { Text(model.title) }
        .onClick(() => { model.handler() })
      })
    }
    .width('100%')
    .height('100%')
  }
}

class DataSource {
  dialog?: CustomDialogController
  initData(): Model[] {
    //....构造一个models数组,这里仅举一例
    const model1 = New Model('名称',() => {
      /// 在此处构造CustomDialogController,并使用open弹出
      this.dialog = new CustomDialogController({
        builder: some,
        customStyle: true,
        alignment: DialogAlignment.Bottom
      })
      this.dialog.open()
    })
  }
}
  • 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.
HarmonyOS
2024-12-24 16:25:17
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu

CustomDialogController仅在作为@CustomDialog和@Component struct的成员变量,且在@Component struct内部定义时赋值才有效。请参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5#customdialogcontroller

分享
微博
QQ
微信
回复
2024-12-24 18:49:28


相关问题
HarmonyOS 弹框无法组件里面弹出
640浏览 • 1回复 待解决
restartApp应用获焦时无法使用
902浏览 • 1回复 待解决
HarmonyOS Toast无法弹出
611浏览 • 1回复 待解决
富文本web组件无法展示
2859浏览 • 1回复 待解决
HarmonyOS PromptAction无法弹出Toast
762浏览 • 1回复 待解决