HarmonyOS router使用是否可以带参数返回

router使用是否可以类似startActivityForResult返回带着参数返回,并在跳转的页面里,通过onActivityResult判断是从哪个页面跳回来的。

HarmonyOS
2024-12-25 08:42:52
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Excelsior_abit

需要手动定义页面参数并传递。假设PageA跳转PageB,PageB携带参数返回。

规避方案可以在onPageShow中添加判断逻辑,并使用一个全局变量来对拉起页面的原因进行判断;比如A中定义一个appstorage全局变量ispush=false,当push到B页面时将ispush变更为true,onpageshow进入时如果判断ispush为true则触发getParams,并在onbackground中修改ispush=false(应用退回后台),这样只有从其他页面跳转来的时候才会触发getParams

示例参考如下:

import router from '@ohos.router';

@Entry
@Component
struct pageA {
  @State info1: string = '';

  onPageShow(): void {
    const params = router.getParams() as Record<string, string>
    if (params) {
      this.info1 = params.info as string
    }
  }

  build() {
    Column() {
      Text('这是首页')
      Text(`这是详情页面的数据:${this.info1}`)
      Button('点击跳转详情面').onClick(() => {
        router.pushUrl({ url: 'pages/pageB' })
      })
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

页面跳转方式推荐navigation:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5#navpathinfo10

分享
微博
QQ
微信
回复
2024-12-25 10:50:31
相关问题
子窗口加载的页面是否可以参数
856浏览 • 1回复 待解决
HarmonyOS router.back返回参数如何接收
710浏览 • 1回复 待解决
router.pushUrl是否无法使用Map类型参数
1458浏览 • 1回复 待解决
返回页面router.back如何传递参数
1632浏览 • 2回复 待解决
是否能定义一个返回的组件?
964浏览 • 1回复 待解决
router.back如何携带参数返回给上一级
2452浏览 • 1回复 待解决
HarmonyOS 蓝牙BLE使用是否需要定位
721浏览 • 1回复 待解决
HarmonyOS router 返回问题
966浏览 • 1回复 待解决
router.pushUrl 无法使用Map类型参数
1043浏览 • 1回复 待解决
HarmonyOS router携带参数问题
633浏览 • 1回复 待解决
HarmonyOS router获取不到参数
566浏览 • 1回复 待解决
router传递hashmap参数问题
2542浏览 • 1回复 待解决
HarmonyOS Router如何返回指定页面
579浏览 • 1回复 待解决
HarmonyOS router参数不能是map类型?
743浏览 • 1回复 待解决
HarmonyOS router参数不能传递函数
578浏览 • 1回复 待解决
返回按钮是否可以自定义事件?
978浏览 • 1回复 待解决
HarmonyOS router跳转返回如何传参
670浏览 • 1回复 待解决