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' })
      })
    }
  }
}

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

分享
微博
QQ
微信
回复
2024-12-25 10:50:31
相关问题
子窗口加载的页面是否可以参数
494浏览 • 1回复 待解决
HarmonyOS router.back返回参数如何接收
193浏览 • 1回复 待解决
router.pushUrl是否无法使用Map类型参数
965浏览 • 1回复 待解决
返回页面router.back如何传递参数
1176浏览 • 2回复 待解决
HarmonyOS 蓝牙BLE使用是否需要定位
245浏览 • 1回复 待解决
是否能定义一个返回的组件?
462浏览 • 1回复 待解决
router.back如何携带参数返回给上一级
1761浏览 • 1回复 待解决
router.pushUrl 无法使用Map类型参数
677浏览 • 1回复 待解决
HarmonyOS router 返回问题
499浏览 • 1回复 待解决
HarmonyOS router携带参数问题
170浏览 • 1回复 待解决
HarmonyOS router获取不到参数
123浏览 • 1回复 待解决
router传递hashmap参数问题
1858浏览 • 1回复 待解决
HarmonyOS Router如何返回指定页面
160浏览 • 1回复 待解决
HarmonyOS router参数不能是map类型?
382浏览 • 1回复 待解决
HarmonyOS router参数不能传递函数
188浏览 • 1回复 待解决
返回按钮是否可以自定义事件?
441浏览 • 1回复 待解决