HarmonyOS router.back()如何获取返回值

选人控件有三个页面A、B、C、都会跳转选人控件并获取返回值、router.back添加返回参数的时候url是必填的,但是在选人中并不能确定是从哪个页面跳转的。这种如何写返回值?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

可以在A、B、C页面传参时额外设置一个变量来标识是从哪个页面跳转到的选人控件,参考代码如下:

1、页面A:

import { router } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    Column() {

      Button('点击')
        .onClick(() => {
          router.pushUrl({
            url: 'pages/index3',
            params: {
              flag: '1',
              data: 'Hello World'
            }
          })
        })
    }
    .justifyContent(FlexAlign.Center)
    .height('100%')
    .width('100%')
  }
}

2、选人控件:

import { router } from '@kit.ArkUI';

@Entry
@Component
struct Index3 {
  @State message: string = 'Hello World';

  aboutToAppear(): void {
    let param = router.getParams() as Record<string, string>
    console.log(`参数一:${param['flag']}`);
    console.log(`参数二:${param['data']}`);
    if (param['flag'] == '1') {
      console.log(`页面A`)
    }
  }

  build() {
    Column() {
      Text('page3')

      Button('点击')
        .onClick(() => {
          router.back({
            url: 'pages/Index'
          })
        })
    }
    .justifyContent(FlexAlign.Center)
    .height('100%')
    .width('100%')
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS router.back返回参数如何接收
66浏览 • 1回复 待解决
返回页面router.back如何传递参数
1017浏览 • 2回复 待解决
HarmonyOS router.back返回页面问题
76浏览 • 1回复 待解决
如何获取router.back传递的参数
2746浏览 • 1回复 待解决
HarmonyOS 关于router.back()
753浏览 • 1回复 待解决
HarmonyOS router.back无法返回到上一页
60浏览 • 1回复 待解决
router.back中加入指定url后无法返回
351浏览 • 1回复 待解决
router.back如何携带参数返回给上一级
1641浏览 • 1回复 待解决
HarmonyOS router.back无法退出应用
51浏览 • 1回复 待解决
能否拦截左滑返回并替换为router.back
741浏览 • 1回复 待解决
HarmonyOS router.back不起作用
142浏览 • 1回复 待解决
HarmonyOS 关于router.back问题的咨询
474浏览 • 1回复 待解决
router.back调用时,偶现app自动退出
1771浏览 • 1回复 待解决
HarmonyOS TextPickerDialog返回值问题
339浏览 • 1回复 待解决
HarmonyOS 获取副卡服务商无返回值
40浏览 • 1回复 待解决
HarmonyOS Promise函数返回值问题
5浏览 • 1回复 待解决