HarmonyOS鸿蒙Next中ARK UI自定义弹窗嵌套,第二层弹窗使用this.controller.close()报错
HarmonyOS鸿蒙Next中ARK UI自定义弹窗嵌套,第二层弹窗使用this.controller.close()报错
如题,在弹窗嵌套(CustomDialog打开CustomDialog),第二层被打开的弹窗无法使用this.controller.close()
,报错信息如下:
[phone][Ace ERROR] 02/28 22:24:43 22716 [qjs_utils.cpp(JsStdDumpErrorAce)-(0)] [Engine Log] [DUMP] TypeError: cannot read property 'close' of undefined
代码如下:
@CustomDialogstruct myCustomDialog {
controller: CustomDialogController
private text: string
private openNextDialog() {
var DeleteCustomDialogController: CustomDialogController = new CustomDialogController({
builder: myCustomDialog({ text: '弹窗2' })
})
DeleteCustomDialogController.open()
}
build() {
Column() {
Text(this.text)
.fontSize(30)
Row() {
Button('取消')
.onClick(() => {
this.controller.close()
})
Button('打开')
.onClick(() => {
this.controller.close()
this.openNextDialog()
})
}
}
}
}
@Entry
@Componentstruct CustomDialogUser {
DeleteCustomDialogController: CustomDialogController = new CustomDialogController({
builder: myCustomDialog({ text: '弹窗1' })
})
build() {
Column() {
Button('test')
.onClick(() => {
this.DeleteCustomDialogController.open()
})
}.width('100%').margin({ top: 5 })
}
}
更多关于HarmonyOS鸿蒙Next中ARK UI自定义弹窗嵌套,第二层弹窗使用this.controller.close()报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
楼主您好,请使用23039.rar(后缀去掉)文件中的写法
更多关于HarmonyOS鸿蒙Next中ARK UI自定义弹窗嵌套,第二层弹窗使用this.controller.close()报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
请问23039.rar是什么文件,
Change text
click me
Whether to change a text?
[cancel] | [confirm] |
---|
Callback when the first button is clicked
Callback when the second button is clicked
Click the callback in the blank area
姓名: 张三
职业: 软件工程师
简介: 拥有超过十年的软件开发经验,擅长Java和Python。
楼主您好,该问题已反馈给开发人员,请耐心等待,感谢您的支持
图示没有展示完,在这里补上
在HarmonyOS鸿蒙Next中,ARK UI自定义弹窗嵌套时,第二层弹窗使用this.controller.close()
报错,可能是因为this.controller
未正确绑定到第二层弹窗的控制器。建议检查以下几点:
- 控制器绑定:确保第二层弹窗的控制器已正确初始化并绑定到当前上下文。
- 作用域问题:确认
this
指向的是第二层弹窗的实例,而非第一层弹窗。 - 生命周期:确保在弹窗生命周期内调用
close()
方法,避免在弹窗未完全初始化或已销毁时调用。
如果问题仍未解决,建议使用调试工具检查this.controller
的状态,或参考官方文档确认API使用方式。