HarmonyOS 是否有简单的page,pop并携带参数的方法

HarmonyOS
2024-12-24 16:16:37
960浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
put_get

想要当前Page回退到上个Page,并携带参数。目前只能通过如下的方法实现:

let preIndex = router.getState().index - 1
if (preIndex > 0) {
  router.back(preIndex, { "url": router.getState().name, "key": 100 })
}
  • 1.
  • 2.
  • 3.
  • 4.

是否有更好的实现方式?

可以使用emitteron传参,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-emitter-V5#emitteron

import emitter from '@ohos.events.emitter';
import { router } from '@kit.ArkUI';

@Entry
@Component
struct EmitterPage1 {

  aboutToAppear() {
    emitter.off('123')
    emitter.on('123', (data)=>{
      console.log('aboutToAppear123',JSON.stringify(data));
    })
  }
  build() {
    Column(){

      Button('跳转到EmitterPage2')
        .onClick(()=> {
          router.pushUrl({
            url:  "pages/emitterPage/emitterPage2"
          })
        })
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
import emitter from '@ohos.events.emitter';
import { router } from '@kit.ArkUI';
@Entry
@Component
struct EmitterPage2 {

  build() {
    Button('index')
      .onClick(()=> {
        router.back()
        let eventData: emitter.EventData = {
          data: {
            "content": "c",
            "id": '1',
          }
        };
        emitter.emit('123',eventData)
      })
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
分享
微博
QQ
微信
回复
2024-12-24 19:01:01
相关问题
HarmonyOS router携带参数问题
640浏览 • 1回复 待解决
HarmonyOS page 参数问题
793浏览 • 1回复 待解决
HarmonyOS 是否清理urlcache方法
1094浏览 • 1回复 待解决
HarmonyOS是否官方提供加锁方法
1111浏览 • 1回复 待解决