HarmonyOS鸿蒙Next中显示页面点击新增按钮进入新增页面,新增页面成功添加数据后返回显示页面数据没有刷新

HarmonyOS鸿蒙Next中显示页面点击新增按钮进入新增页面,新增页面成功添加数据后返回显示页面数据没有刷新 显示页面点击新增按钮进入新增页面,新增页面成功添加数据后返回显示页面数据没有刷新,但是进入其他页面后再返回数据就已经刷新了,打印日志从新增页面跳转到显示页面时,是没有增加的,我才就是先查了再新增了,不知道如何修改这种跨页面的异步操作

新增后跳转代码

新增后跳转代码

新增逻辑

新增逻辑

显示页面显示数据

显示页面显示数据


更多关于HarmonyOS鸿蒙Next中显示页面点击新增按钮进入新增页面,新增页面成功添加数据后返回显示页面数据没有刷新的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

方案一:

用 ViewModel, 将第一个页面的数据及其刷新通过 vm1 来控制, 并将这个 vm1 传递给第二个页面(可以用单例/provider 等方式), 在第二个页面对数据修改 (addQuota) 后调用 vm1 的刷新数据逻辑(fetchAccountLine)。

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-mvvm-v2#%E9%80%9A%E8%BF%87%E7%8A%B6%E6%80%81%E7%AE%A1%E7%90%86v2%E7%89%88%E6%9C%AC%E5%AE%9E%E7%8E%B0viewmodel

方案二:

用 eventhub, 在 addQuota 完成后 emit 数据更新事件, 在 page1 中监听到时间后刷新数据 fetchAccountLine

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-application-eventhub

更多关于HarmonyOS鸿蒙Next中显示页面点击新增按钮进入新增页面,新增页面成功添加数据后返回显示页面数据没有刷新的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个方法二有具体操作吗

我的问题出在新增后返回显示页面时,显示页面保存数据的那个数组没有发生改变,

在HarmonyOS鸿蒙Next中,如果在新增页面成功添加数据后返回显示页面时数据没有刷新,可能是因为显示页面没有重新加载或更新数据源。通常情况下,显示页面在返回时不会自动刷新,需要手动触发数据的重新加载。

可以通过以下几种方式解决:

  1. 使用页面生命周期方法:在显示页面的onPageShow生命周期方法中,重新加载数据。onPageShow会在页面显示时被调用,确保每次返回显示页面时数据都会被刷新。

  2. 使用事件通知机制:在新增页面成功添加数据后,通过事件总线(EventBus)或自定义事件通知显示页面进行数据刷新。显示页面可以监听该事件,并在事件触发时重新加载数据。

  3. 使用页面路由回调:在显示页面中使用router.pushrouter.replace跳转到新增页面时,传入回调函数。在新增页面返回时,调用回调函数触发显示页面的数据刷新。

  4. 使用共享数据源:如果显示页面和新增页面共享同一个数据源,确保在新增页面修改数据后,显示页面能够感知到数据的变化并自动更新。

通过这些方式,可以确保在新增页面返回显示页面时,数据能够正确刷新。

在HarmonyOS鸿蒙Next中,新增页面成功添加数据后返回显示页面数据没有刷新,可能是因为显示页面的数据没有及时更新。你可以通过以下步骤解决:

  1. 在新增页面的返回逻辑中,使用IntentEventBus等方式将新增的数据传递回显示页面。

  2. 在显示页面的onResumeonStart方法中,重新加载或刷新数据。

  3. 确保显示页面的数据源已更新,并调用notifyDataSetChanged等方法更新UI。

这样可以确保返回显示页面时数据得到刷新。

回到顶部