HarmonyOS 鸿蒙Next 怎么实现路由跳转时可以双向修改数据

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

HarmonyOS 鸿蒙Next 怎么实现路由跳转时可以双向修改数据 要完成一个需求,就是类似于备注的功能

点击备注要跳转到其他页面,然后修改完数据之后,会同步进行更新,不知道怎么实现,求指教


更多关于HarmonyOS 鸿蒙Next 怎么实现路由跳转时可以双向修改数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复
AppStorage

更多关于HarmonyOS 鸿蒙Next 怎么实现路由跳转时可以双向修改数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


啥都不需要啊,路由就支持这个功能啊,router,你把当前值传到备注修改页面,然后调用back方法把修改好的数据带回来啊。然后刷新页面。

back带不回来,不知道啥问题,

可以看一下 LocalStorage 的方式。通过 LocalStorage.GetShared() 方式,可以实现两个页面之间的数据同步。(官方文档查询 LocalStorage.GetShared() 就可以看到相关参考文档,亲测有用)

装饰器做不到吗?,

  • 复制
  • 深色代码主题

在HarmonyOS鸿蒙Next中,实现路由跳转时双向修改数据可以通过AbilitySliceIntent结合使用。首先,在源AbilitySlice中通过Intent传递数据到目标AbilitySlice。在目标AbilitySlice中修改数据后,可以通过setResult方法将修改后的数据返回给源AbilitySlice。源AbilitySlice通过重写onResult方法接收返回的数据并进行处理。

具体步骤如下:

  1. 在源AbilitySlice中,使用Intent传递数据到目标AbilitySlice

    let intent = new Intent();
    intent.setParam("key", value);
    this.presentForResult(targetAbilitySlice, intent, requestCode);
  2. 在目标AbilitySlice中,修改数据并通过setResult返回:

    let modifiedData = this.intent.getParam("key");
    // 修改数据
    modifiedData = newValue;
    let resultIntent = new Intent();
    resultIntent.setParam("key", modifiedData);
    this.setResult(resultCode, resultIntent);
  3. 在源AbilitySlice中,重写onResult方法接收返回的数据:

    onResult(requestCode: number, resultCode: number, data: Intent) {
        if (requestCode === requestCode && resultCode === resultCode) {
            let returnedData = data.getParam("key");
            // 处理返回的数据
        }
    }

通过这种方式,可以在路由跳转时实现双向数据修改。

在HarmonyOS鸿蒙Next中,可以通过AbilitySliceIntent实现路由跳转时的双向数据传递。首先,在源AbilitySlice中使用IntentsetParam方法传递数据,然后在目标AbilitySlice中使用getParam方法接收数据。若需返回数据,可在目标AbilitySlice中通过setResult方法设置返回数据,并在源AbilitySlice中通过onResult方法接收。这种方式实现了双向数据修改。

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