相关问题
#鸿蒙通关秘籍#如何管理鸿蒙应用中的自定义路由栈?
621浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义路由栈管理获取来源页面模块名?
538浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用自定义路由栈管理在鸿蒙应用中实现页面导航?
601浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在自定义弹窗中实现路由跳转?
895浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现动态路由管理和自定义路由表?
636浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI自定义弹窗中实现页面路由跳转?
831浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现路由拦截并增加自定义逻辑?
537浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NEXT应用中实现动态路由跳转?
810浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS中动态下载并注册自定义字体?
492浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中自定义视频控制器?
646浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现动态路由跳转页面?
806浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中定义自定义转场动画?
632浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙栅格布局中自定义断点?
836浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现自定义菜单样式?
998浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中应用BuilderNode创建自定义控件树?
708浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中创建自定义组件?
795浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙导航组件中实现跨包动态路由?
807浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙开发中如何实现动态路由?
789浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS Next中自定义Stepper组件?
763浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中自定义焦点框样式?
612浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI中创建并显示自定义弹窗?
765浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中自定义Swiper组件的切换动画?
971浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙的ArkTS中创建自定义Sendable类?
719浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙OS中对绘制组件自定义样式?
638浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中自定义图片布局的列数?
589浏览 • 1回复 待解决
如果在开发鸿蒙应用中需要根据不同来源页展示不同的UI,用自定义路由栈是个不错的解决方案。实现步骤如下:
typescript export class DynamicsRouter { static routerStack: Array<RouterModel> = new Array(); static referrer: string[] = []; }
typescript public static async push(router: RouterModel): Promise<void> { DynamicsRouter.getRouter().pushPath({ name: router.routerName, param: router.param }); DynamicsRouter.routerStack.push(router); let referrerModel: RouterModel = DynamicsRouter.routerStack[DynamicsRouter.routerStack.length - 2]; DynamicsRouter.referrer[0] = referrerModel.routerName; DynamicsRouter.referrer[1] = referrerModel.path; }
typescript public static pop(): void { let referrerModel: RouterModel = DynamicsRouter.routerStack[DynamicsRouter.routerStack.length - 1]; DynamicsRouter.referrer[0] = referrerModel.routerName; DynamicsRouter.referrer[1] = referrerModel.path; if (DynamicsRouter.routerStack.length > 1) { DynamicsRouter.routerStack.pop(); } DynamicsRouter.getRouter().pop(); }
通过以上步骤,在页面返回时,
DynamicsRouter.referrer
可以保存来源页的信息,方便在UI展示时使用。