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

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

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

是否有更好的实现方式?

阅读 575
1 个回答

可以使用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)
      })
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进