HarmonyOS 自定义弹窗的CustomDialogController必须写在当前组件中么,从别的地方的static方法初始化并返回,但是弹窗弹不起来

newTextDialogController: CustomDialogController = EBTextDialog.alert({
  showCloseBtn: false,
  title: 'abc',
  msg: 'cvccvcvcvvccvcvvcvccvcvcvvcvccvcvcvvccvcvcvvccvcvvcvcvccv333',
  // confirmClick: () => {
  //   console.log('xxxxxx---点击')
  // }
})

this.newTextDialogController.open()
@CustomDialog
export struct EBTextDialog {
  ............
  static alert(model: EBTextDialogModel): CustomDialogController {
    return new CustomDialogController({
      builder: EBTextDialog({
        showCloseBtn: true,
        title: 'model.title',
        msg: 'model.msg',
      }),
      alignment: DialogAlignment.Bottom,
      autoCancel: false,
      customStyle: true,
    })
  }
}

这样使用static方法把弹窗代码分装好之后,外面页面调用的时候没办法弹出。

HarmonyOS
2025-01-09 16:26:18
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

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

可以使用promptAction.openCustomDialog接口,全局调用自定义弹窗打开:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-promptaction-V5#promptactionopencustomdialog11

分享
微博
QQ
微信
回复
2025-01-09 18:48:46
相关问题
HarmonyOS 自定义弹窗初始化问题
306浏览 • 1回复 待解决
如何在自定义弹窗再次弹窗
2678浏览 • 1回复 待解决
HarmonyOS 自定义弹窗如何更新弹窗UI
453浏览 • 1回复 待解决
HarmonyOS 自定义弹窗问题
1208浏览 • 1回复 待解决
初始化安全相机方法
882浏览 • 1回复 待解决