HarmonyOS CustomDialogController的option参数为什么必须写在构造函数里面,不能外面定义好

code-2没问题,code-1编译没错,运行直接崩溃。

//code-1 
option: CustomDialogControllerOptions = { 
  builder: LoadingBuilder, 
  autoCancel: true, 
  alignment: DialogAlignment.Center, 
  offset: { dx: 0, dy: 0 }, 
  customStyle: true, 
  maskColor: 'rgba(0, 0, 0, 0.8)', 
} 
dialogController = new CustomDialogController(this.option); 
 
// code-2 
// dialogController = new CustomDialogController({ 
//   // builder: 
//   builder:LoadingBuilder, 
//   autoCancel: true, 
//   alignment: DialogAlignment.Center, 
//   offset: { dx: 0, dy: 0 }, 
//   customStyle: true, 
//   maskColor: 'rgba(0, 0, 0, 0.8)', 
// })
HarmonyOS
2024-11-27 09:31:06
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

​建议使用 promptAction.openCustomDialog,文档:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-promptaction-V5

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-window-stage-V5

diaogController在声明是应在@component中作为一个变量进行初始化,此外,也不能动态的对diaogController进行赋值;请开发者严格按照文档上的写法进行修改,而且初始化后,不要再动态对diaogController进行重新赋值,以免出现一些无法预料的问题。

原理的话code-2是和官网的代码保持一直,code-1写法上我们这个controller使用条件比较苛刻,这种传参的方式是会有问题的,建议的话现阶段使用全局弹窗。PromptAction.openCusotmDialog来替代这个带controller的弹窗,因为全局弹窗能力上比controller的弹窗强(例如支持和页面解耦,支持在非UI界面弹出)而且更简单易用​。

分享
微博
QQ
微信
回复
2024-11-27 15:00:02
相关问题
不能报名公测为什么
7072浏览 • 1回复 待解决
HarmonyOS ArkTS中如何实现泛型构造函数
464浏览 • 1回复 待解决
为什么文章不能评论,有问题交流
4603浏览 • 1回复 待解决
Harmony手表为什么不能安装apk啊?
3717浏览 • 1回复 待解决
Redis里面的RedLock定义什么
3330浏览 • 1回复 待解决
为什么不能模拟加密门禁卡
6807浏览 • 1回复 待解决
HarmonyOS profiler里面不能选择设备
7浏览 • 0回复 待解决