HarmonyOS Navigation跳转新页面生命周期初始化问题

按照https://developer.huawei.com/consumer/cn/doc/harmonyos-samples/samples-0000001162414961中“应用导航设计”的demo示例,想问下B1,B2这种二级页面怎么初始化,或者请求接口?之前的aboutToAppear生命周期方法都没有,有其他方式么?

HarmonyOS
2024-08-08 19:04:56
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu
1

没有提供直接在Navigation组件和NavDestination组件之间实现数据传递的装饰器。

可以参考以下方式,通过api调用的方式实现参数传递

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-navigation.md#pushpathbyname11

“应用导航设计”的demo示例中针对B1.ets文件做如下修改,在onShown方法中可以实现在页面加载之前的方法调用,参考代码如下:

import { BuilderNameConstants, buildRouterModel, RouterModule, RouterNameConstants, } from '@ohos/routermodule'; 
 
import http from '@ohos.net.http'; 
 
@Builder 
export function harBuilder(value: object) { 
  NavDestination() { 
    Column() { 
      Button($r("app.string.to_harb_pageB2"), { stateEffect: true, type: ButtonType.Capsule }) 
        .width('80%') 
        .height(40) 
        .margin(20) 
        .onClick(() => { 
          buildRouterModel(RouterNameConstants.ENTRY_HAP, BuilderNameConstants.HARB_B2); 
        }) 
    } 
    .width('100%') 
    .height('100%') 
  } 
  .onShown(() => { 
    // http请求网络资源数据 
    let httpRequest = http.createHttp(); 
    httpRequest.request("your url", (err, data) => { 
      if (!err) { 
        console.info('Result:' + data.result); 
        console.info('code:' + data.responseCode); 
        console.info('header:' + JSON.stringify(data.header)); 
        console.info('cookies:' + data.cookies); // 8+ 
      } else { 
        console.info('error:' + JSON.stringify(err)); 
      } 
    }); 
  }) 
  .title('B1Page') 
  .onBackPressed(() => { 
    RouterModule.pop(RouterNameConstants.ENTRY_HAP); 
    return true; 
  }) 
} 
 
const builderName = BuilderNameConstants.HARB_B1; 
if (!RouterModule.getBuilder(builderName)) { 
  let builder: WrappedBuilder<[object]> = wrapBuilder(harBuilder); 
  RouterModule.registerBuilder(builderName, builder); 
}
分享
微博
QQ
微信
回复
2024-08-09 10:47:30
相关问题
HarmonyOS Navigation跳转生命周期咨询
240浏览 • 1回复 待解决
HarmonyOS页面onPageShow生命周期不回调
277浏览 • 1回复 待解决
HarmonyOS能否全局监听页面生命周期
151浏览 • 1回复 待解决
Window窗口的生命周期问题
84浏览 • 1回复 待解决
HarmonyOS 弹框Dialog的生命周期问题
123浏览 • 1回复 待解决
监听Ability生命周期
754浏览 • 1回复 待解决
swiper切换监听生命周期
700浏览 • 1回复 待解决
如何监听subwindow生命周期
97浏览 • 1回复 待解决
HarmonyOS 应用RDB初始化示例
152浏览 • 1回复 待解决
HarmonyOS 数据改变未刷新页面
183浏览 • 0回复 待解决
如何更新页面列表数据
6600浏览 • 1回复 待解决
如何监听AbilitySlice的生命周期
4881浏览 • 1回复 待解决
应用内的生命周期流转
196浏览 • 1回复 待解决
onBackPress生命周期是什么,如何重写
122浏览 • 1回复 待解决
弹窗组件无法调用生命周期接口
1871浏览 • 1回复 待解决