在HarmonyOS NEXT开发中 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);
建议使用 promptAction.openCustomDialog,文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
diaogController在声明是应在@component中作为一个变量进行初始化,此外,也不能动态的对diaogController进行赋值;请开发者严格按照文档上的写法进行修改,而且初始化后,不要再动态对diaogController进行重新赋值,以免出现一些无法预料的问题
原理的话code-2是和官网的代码保持一直,code-1写法上我们这个controller使用条件比较苛刻,这种传参的方式是会有问题的,建议的话现阶段使用全局弹窗PromptAction.openCusotmDialog来替代这个带controller的弹窗,因为全局弹窗能力上比controller的弹窗强(例如支持和页面解耦,支持在非UI界面弹出)而且更简单易用