HarmonyOS CustomDialogController一直是undefined

@Component
export struct DialogBug {
  dialogController: CustomDialogController = new CustomDialogController({
    builder: getPublishWidgetBuilder().builder,
    cornerRadius: 0,
    customStyle: true,
    alignment: DialogAlignment.Center,
    maskColor: 0x77000000
  })

  build() {
    Column() {
      Button(‘
      open’
      )
      .
      onClick(() => {
        this.dialogController.open()
      })
    }
    .margin({ top: 200 })
  }
}

function getPublishWidgetBuilder(): WrappedBuilder<[]> {
  return wrapBuilder(DialogBuilder)
}

@Builder
function DialogBuilder() {
  Mydialog()
}

@Component
@CustomDialog
struct Mydialog {
  dialogController?: CustomDialogController

  build() {
    Column() {
      Button(‘
      close’
      ).
      onClick(() => {
        this.dialogController?.close()
      })

    }
  }
}
  • 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.

补充说明:Mydialog中使用new CustomDialogController方式,dialog依然无法关闭

HarmonyOS
2024-12-18 17:23:38
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

请参考如下修改:

@Entry
@Component
struct Test5 {
  build() {
    Column() {
      DialogBug()
    }
  }
}

@Component
export struct DialogBug {
  dialogController: CustomDialogController = new CustomDialogController({
    //builder: getPublishWidgetBuilder().builder,
    builder: Mydialog(),
    cornerRadius: 0,
    customStyle: true,
    alignment: DialogAlignment.Center,
    maskColor: 0x77000000
  })

  build() {
    Column() {
      Button('open').onClick(() => {
        this.dialogController.open()
      })
    }
    .margin({ top: 200 })
  }
}

function getPublishWidgetBuilder(): WrappedBuilder<[]> {
  return wrapBuilder(DialogBuilder)
}

@Builder
function DialogBuilder() {
  Mydialog()
}

@Component
@CustomDialog
struct Mydialog {
  dialogController?: CustomDialogController

  build() {
    Column() {
      Button('close').onClick(() => {
        if (this.dialogController != undefined) {
          this.dialogController.close()
        }
        console.info('dialogController is undefined')
      })

    }
  }
}
  • 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.
  • 56.
  • 57.
分享
微博
QQ
微信
回复
2024-12-18 19:03:01
相关问题
HarmonyOS Profiler TIme 一直initializing
905浏览 • 1回复 待解决
info 获取失败 一直为空
2837浏览 • 1回复 待解决
HarmonyOS 获取定位一直失败
863浏览 • 1回复 待解决
HarmonyOS accessBackward方法一直返回true
790浏览 • 1回复 待解决
HarmonyOS 终端运行ohpm一直报错
1053浏览 • 1回复 待解决
harmonyOS toggle 赋值一直重新触发
498浏览 • 0回复 待解决
HarmonyOS 应用上架一直loading
720浏览 • 1回复 待解决
HarmonyOS IDE无法打开,一直崩溃
959浏览 • 1回复 待解决
http 请求一直报 2300058
2556浏览 • 0回复 待解决
HarmonyOS获取图片旋转值一直报错
1194浏览 • 1回复 待解决