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

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

HarmonyOS
1天前
浏览
收藏 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
微信
回复
1天前
相关问题
子窗口加载的页面是否可以参数
441浏览 • 1回复 待解决
router.pushUrl是否无法使用Map类型参数
782浏览 • 1回复 待解决
HarmonyOS router.back返回参数如何接收
66浏览 • 1回复 待解决
返回页面router.back如何传递参数
1011浏览 • 2回复 待解决
HarmonyOS 蓝牙BLE使用是否需要定位
118浏览 • 1回复 待解决
router.pushUrl 无法使用Map类型参数
513浏览 • 1回复 待解决
router.back如何携带参数返回给上一级
1632浏览 • 1回复 待解决
是否能定义一个返回的组件?
272浏览 • 1回复 待解决
HarmonyOS router 返回问题
374浏览 • 1回复 待解决
HarmonyOS router携带参数问题
44浏览 • 1回复 待解决
HarmonyOS router获取不到参数
32浏览 • 1回复 待解决
router传递hashmap参数问题
1589浏览 • 1回复 待解决
返回按钮是否可以自定义事件?
252浏览 • 1回复 待解决
HarmonyOS Router如何返回指定页面
61浏览 • 1回复 待解决
HarmonyOS router参数不能传递函数
44浏览 • 1回复 待解决
HarmonyOS router参数不能是map类型?
317浏览 • 1回复 待解决