HarmonyOS 鸿蒙Next 通过router.pushurl进行画面间跳转时使用params进行参数传递,在目标画面修改后的参数怎么返回到原画面?

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 通过router.pushurl进行画面间跳转时使用params进行参数传递,在目标画面修改后的参数怎么返回到原画面? 通过router.pushurl进行画面间跳转时使用params进行参数传递,在目标画面修改后的参数怎么返回到原画面?

6 回复
  1. 使用router.back返回携带参数: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-router-V13#routerback12

  2. 使用router.getparams来获取参数: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-router-V13#routergetparams

  3. 在onPageShow中添加判断逻辑,并使用一个全局变量来对拉起页面的原因进行判断;比如a中定义一个appstorage全局变量ispush=false,当push到b页面时将ispush变更为true,onpageshow进入时如果判断ispush为true则触发getParams,并在onbackground中修改ispush=false(应用退回后台),这样只有从其他页面跳转来的时候才会触发getParams

  4. 推荐使用navigation中的getParamByName

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/ts-basic-components-navigation-V13#getparambyname10

更多关于HarmonyOS 鸿蒙Next 通过router.pushurl进行画面间跳转时使用params进行参数传递,在目标画面修改后的参数怎么返回到原画面?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


可以用广播

有没有demo 参考一下,

A页面:

import { emitter } from '@kit.BasicServicesKit';
// 定义一个eventId为1的事件
jump: emitter.InnerEvent = {
    eventId: 1
};
aboutToAppear() {
    // 订阅eventId为1的事件,收到eventId为1的事件后回调
    emitter.on(this.jump, eventData => {
        if (eventData.data) {
            // 要执行的操作 (收到修改后返回来的参数要做的操作)
        }
    });
}

// A页面调用B页面时将this.jump传递过去

B页面:(目标页面)

import { emitter } from '@kit.BasicServicesKit';
@Prop jump: emitter.InnerEvent
// (修改完参数后)
let eventData: emitter.EventData = {
    data: {
        'a': a,  // 你要传递回A页面的参数
        'b': b,
    }
};
// 发送eventId为1的事件,事件内容为eventData
emitter.emit(jump, eventData);

啊忘记写取消广播了,

图片

在HarmonyOS鸿蒙Next系统中,当使用router.pushUrl进行画面间跳转并通过params传递参数时,若需要在目标画面修改参数并返回给原画面,可以通过以下方式实现:

  1. 使用返回结果机制:在目标画面中,修改参数后,可以通过this.$router.back({result: modifiedParams})的方式返回结果。这里的modifiedParams是修改后的参数对象。

  2. 原画面接收返回结果:在原画面中,启动跳转时可以监听返回结果。例如,使用this.$router.pushUrl('/targetPage', {params}, {success: (data) => { if (data.result) { // 处理返回的参数 } }})。这里的data.result即为目标画面返回的参数。

  3. 确保路由配置正确:确保在路由配置中,目标页面允许返回结果,并且原页面能够正确接收和处理这些结果。

注意,具体实现可能因项目结构和路由配置的不同而有所差异。在实际开发中,需根据项目的具体情况进行调整。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部