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

HarmonyOS
2天前
浏览
收藏 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 })
}

是否有更好的实现方式?

可以使用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"
          })
        })
    }
  }
}
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)
      })
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS router携带参数问题
52浏览 • 1回复 待解决
HarmonyOS page 参数问题
352浏览 • 1回复 待解决
HarmonyOS 是否清理urlcache方法
415浏览 • 1回复 待解决
HarmonyOS是否官方提供加锁方法
318浏览 • 1回复 待解决