HarmonyOS 自定义弹窗(CustomDialog)无法关闭

弹窗可以正常展示,但无法关闭,CustomDialogController构建弹窗的时候使用的不是全局变量。

@CustomDialog  
struct CustomDialogExample {  
  controller: CustomDialogController  
  confirm?: () => void  
  build() {  
    Column() {  
      Text('关闭')  
        .fontSize(20)  
        .margin({ top: 10, bottom: 10 })  
        .onClick(() => {  
          Toast.showToast("controller: "+this.controller)  
          this.controller.close()  
          if (this.confirm) {  
            this.confirm()  
          }  
        })  
    }  
  }  
}

弹窗显示逻辑:

Text("test alert")  
  .fontSize(20)  
  .fontWeight(FontWeight.Bold)  
  .onClick(() => {  
    const dialogController: CustomDialogController = new CustomDialogController({  
      builder: CustomDialogExample({  
        confirm: () => {  
          console.info('Callback when the first button is clicked 22')  
        },  
      }),  
      alignment: DialogAlignment.Center,  
      autoCancel: false  
    })  
    dialogController.open()  
  })
HarmonyOS
2024-09-25 12:39:23
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

diaogController在声明是应在@component中作为一个变量进行初始化,此外,也不能动态的对diaogController进行赋值而且初始化后,不要再动态对diaogController进行重新赋值,以免出现一些无法预料的问题。

有注意到代码在onclick回调中写 new CustomDialogController,这种是不推荐的,建议严格按照官网的格式写。

参考链接:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-methods-custom-dialog-box.md#customdialogcontroller

分享
微博
QQ
微信
回复
2024-09-25 18:06:12
相关问题
HarmonyOS 自定义弹窗CustomDialog问题
612浏览 • 1回复 待解决
HarmonyOS 自定义弹窗 (CustomDialog)问题
396浏览 • 1回复 待解决
弹窗打开、关闭动画是否支持自定义
2358浏览 • 1回复 待解决
CustomDialog自定义动画
412浏览 • 1回复 待解决
HarmonyOSCustomDialog自定义Dialog
247浏览 • 1回复 待解决
自定义弹窗自定义转场动画
1128浏览 • 1回复 待解决
HarmonyOS 自定义弹窗选择
353浏览 • 1回复 待解决