HarmonyOS 最佳实践应用导航设计 如何解决目标页面都是组件而不是页面

在使用官方推荐的"应用导航设计"

https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-application-navigation-design-V5

目标组件必须是@builder的自定义组件,而我期望@builder修饰的目标组建能获知onShown()和onHidden()方法,以便我能利用该目标页面的显示和隐藏的时机做业务处理。但我我无法做到

下面附件截图中,说明从entry模块跳转到comic_detail模块使用navigation的方式,期望加载的是ComicDetail这个页面,且这个页面希望能获取到shown()和hidden()的声明周期,而入代码所示,我在ComicDetailBuilder函数中,能获取到 NavDestination() 的shown和hidden,但是我传递不到ComicDetail()页面,这该如何解决呢?

HarmonyOS 最佳实践应用导航设计 如何解决目标页面都是组件而不是页面-鸿蒙开发者社区

HarmonyOS
2024-09-02 12:52:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

可以使用LocalStorage,关键代码如下:

import { BuilderNameConstants, buildRouterModel, RouterModule, RouterNameConstants, } from '@ohos/routermodule'; 
let para: Record<string, number> = { 'PropA': 47 }; 
let storage: LocalStorage = new LocalStorage(para); 
@Component 
struct A1 { 
 
  aboutToAppear(): void { 
    console.log(`ssssssss:`+storage.get('PropA')) 
  } 
 
  build() { 
    Column() { 
      Text(`传入的参数:`+storage.get('PropA')) 
        .margin(20) 
      Button($r("app.string.to_index"), { stateEffect: true, type: ButtonType.Capsule }) 
        .width('80%') 
        .height(40) 
        .margin(20) 
        .onClick(() => { 
          RouterModule.clear(RouterNameConstants.ENTRY_HAP); 
        }) 
 
    } 
    .width('100%') 
    .height('100%') 
  } 
} 
 
@Builder 
export function harBuilder(value: object) { 
  NavDestination() { 
    A1() 
  }.onReady(()=>{ 
    storage.set('PropA',22) 
  }) 
  .onShown(()=>{ 
 
    console.log("111111111111111111:::"+storage.get('PropA')) 
  }) 
  .title('A1Page') 
  .onBackPressed(() => { 
    RouterModule.pop(RouterNameConstants.ENTRY_HAP); 
    return true; 
  }) 
} 
 
const builderName = BuilderNameConstants.HARA_A1; 
if (!RouterModule.getBuilder(builderName)) { 
  const builder: WrappedBuilder<[object]> = wrapBuilder(harBuilder); 
  RouterModule.registerBuilder(builderName, builder); 
}
分享
微博
QQ
微信
回复
2024-09-02 17:16:16
相关问题
har多目标,多值问题如何解决
387浏览 • 1回复 待解决
HarmonyOS jsBridge 最佳实践
254浏览 • 1回复 待解决
应用内整体换肤的最佳实践
423浏览 • 1回复 待解决
应用导航设计遇到的问题
268浏览 • 1回复 待解决
HarmonyOS页面设计选型问题
381浏览 • 1回复 待解决
视频和直播播放HarmonyOS最佳实践
700浏览 • 1回复 待解决
隐私安全页面跳转实践
2822浏览 • 1回复 待解决
web写入customUseragent最佳实践
222浏览 • 1回复 待解决
HarmonyOS 沉浸式状态栏最佳实践
284浏览 • 1回复 待解决
页面导航如何实现两个页面叠层
1901浏览 • 1回复 待解决