HarmonyOS 鸿蒙Next中router.back如何传入参数,返回上一级

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

HarmonyOS 鸿蒙Next中router.back如何传入参数,返回上一级 目前router.back这块如果要携带参数返回上一界面的话,需要传RouterOptions参数,这个参数url是必填的,有什么办法 我可以不填写url,直接填写参数,返回的时候 自动上一页面接收处理呢?

我这边主界面是通过Navigation跳转到二级界面,然后二级界面跳转三级界面的时候,因为业务需求,这个三级界面不是navigation的,然后又有多个二级界面的口子跳转三级界面,那么我三级界面返回的时候可不可以不支持返回界面,就走默认的上一个界面,然后back参数回去

3 回复

当前router.back如果要携带参数返回,是需要传入url的。若咱们不想传入url还想实现参数共享传递,建议在二级页面使用AppStorage来存储参数,跳转到三级页面后取出该参数并进行处理(处理后对应的二级页面的参数也会更新),然后在三级页面直接使用router.back返回。

更多关于HarmonyOS 鸿蒙Next中router.back如何传入参数,返回上一级的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,router.back方法用于返回上一级页面。如果需要传递参数,可以通过router.pushrouter.replace方法在跳转时携带参数,然后在返回时通过router.back方法的options参数传递数据。

具体实现方式如下:

  1. 跳转时携带参数: 使用router.pushrouter.replace方法跳转时,可以通过params参数传递数据。

    router.push({
      url: 'pages/NextPage',
      params: {
        key1: 'value1',
        key2: 'value2'
      }
    });
  2. 返回时传递参数: 在返回上一级页面时,可以通过router.back方法的options参数传递数据。

    router.back({
      params: {
        key3: 'value3',
        key4: 'value4'
      }
    });
  3. 接收参数: 在上一级页面中,可以通过router.getParams方法获取返回时传递的参数。

    const params = router.getParams();
    console.log(params.key3); // 输出: value3
    console.log(params.key4); // 输出: value4

在HarmonyOS 4.0中,router.back方法可以通过params属性传递参数。具体实现如下:

router.back({
  url: 'pages/PreviousPage', // 上一级页面的路径
  params: {
    key1: 'value1',
    key2: 'value2'
  }
});

在上一级页面中,可以通过router.getParams方法获取传递的参数:

let params = router.getParams();

确保页面路径和参数类型正确,以实现参数传递。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!