相关问题
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
96浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现动态路由跳转页面?
58浏览 • 1回复 待解决
HarmonyOS 路由跳转时自定义弹窗遮挡页面
503浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用自定义路由栈管理在鸿蒙应用中实现页面导航?
75浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI中创建并显示自定义弹窗?
33浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
40浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkUI中创建一个自定义弹窗?
51浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现动态路由管理和自定义路由表?
53浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理鸿蒙应用中的自定义路由栈?
42浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义弹窗的交互功能?
9浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何实现自定义弹窗的动画效果?
10浏览 • 0回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS的H5页面中实现自定义输入法弹窗?
54浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何实现自定义路由栈管理获取来源页面模块名?
49浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用openCustomDialog在鸿蒙中创建自定义弹窗?
47浏览 • 1回复 待解决
#鸿蒙通关秘籍#Tabs组件中如何实现自定义页面切换动画?
74浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙栅格布局中自定义断点?
72浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙系统中如何有效进行页面路由跳转?
21浏览 • 2回复 待解决
#鸿蒙通关秘籍#如何自定义鸿蒙ArkUI中的Tabs组件标签样式?
9浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现路由拦截并增加自定义逻辑?
67浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中创建自定义组件?
85浏览 • 1回复 待解决
如何在自定义弹窗中再次弹窗
2255浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在组件中阻止页面路由?
50浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在Tabs组件中实现自定义导航栏样式?
75浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中为Webview页面添加自定义长按菜单?
94浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙中如何关闭或者自定义页面转场动画?
85浏览 • 1回复 待解决
在鸿蒙ArkUI中,当需要在自定义弹窗中进行页面路由跳转,可以通过在
CustomDialog
内部使用路由API实现:在自定义弹窗内处理路由跳转: javascript @CustomDialog struct CustomDialogExample { @Link textValue: string; controller?: CustomDialogController; cancel: () => void = () => { }; confirm: () => void = () => { };
build() { Column({ space: 20 }) { if (this.textValue != '') { Text(
第二个页面的内容为:${this.textValue}
).fontSize(20); } else { Text('是否获取第二个页面的内容').fontSize(20); } Flex({ justifyContent: FlexAlign.SpaceAround }) { Button('cancel') .onClick(() => { if (this.controller != undefined) { this.controller.close(); this.cancel(); } }).backgroundColor(0xffffff).fontColor(Color.Black); Button('confirm') .onClick(() => { if (this.controller != undefined && this.textValue != '') { this.controller.close(); } else if (this.controller != undefined) { this.getUIContext().getRouter().pushUrl({ url: 'pages/Index2' }); this.controller.close(); } }).backgroundColor(0xffffff).fontColor(Color.Red); }.margin({ bottom: 10 }); }.borderRadius(10).padding({ top: 20 }); } }在主页面组件内获取并处理传递的参数: javascript @Entry @Component struct CustomDialogUser { @State textValue: string = ''; dialogController: CustomDialogController | null = new CustomDialogController({ builder: CustomDialogExample({ cancel: () => { this.onCancel(); }, confirm: () => { this.onAccept(); }, textValue: $textValue, }) });
onPageShow() { const params = this.getUIContext().getRouter().getParams() as Record<string, string>; if (params) { this.dialogController?.open(); this.textValue = params.info as string; } }
build() { Column() { Button('click me') .onClick(() => { if (this.dialogController != null) { this.dialogController.open(); } }).backgroundColor(0x317aff); }.width('100%').margin({ top: 5 }); } }