176 Star 1.5K Fork 758

HarmonyOS / Codelabs

 / 详情

router.getParams()里的数据不能被清空,该数据可能是历史某次遗留的,怎么清空?

待办的
缺陷
创建于  
2023-12-27 16:01

【模块名_概率】简要描述:
router.getParams()里的数据不能被清空,该数据可能是历史某次遗留的,怎么清空数据或者判断数据的有效性?

例如场景:
页面A通过router路由到页面B,页面B通过router.back({url: this.sourceUrl, params: resultData})返回并携带数据到页面A,这时页面A通过router.getParams()可拿到数据resultData;
再次 页面A->页面B或者页面C,这次页面B或者页面C返回但不携带数据到页面A,这时页面A竟然还能拿到原数据resultData 。
这就造成:页面A里不知道这个数据是不是最近一次返回的数据。

router里没看到相关api可以清空数据。

怎么清空这个数据或者判断数据的有效性???

【环境信息】:

  • 网络环境
  • 硬件开发板型号 - Mate 60 Pro ALN-AL00
  • 软件版本信息或tag节点 - HarmonyOS4.0 , 操作系统2.1.2.5(Canary1)
  • 测试环境
  • 其他

【预置条件】:

【测试步骤】:

【预期结果】:

【实际结果】:

【恢复手段】:

【出现概率】:问题出现次数/实际测试次数
必现
【定位信息】:

    1. Log、截图、多媒体文件等,所有和问题有关的信息:

评论 (2)

bringogo 创建了缺陷

同问 我也遇到过

如果有这种情况,那应该是官方api有问题,可以尝试不用router.back传递参数,在跳转页面的时候使用 EventHub 监听一个事件通信,返回的时候,eventHub.emit()方法触发该事件。这种方式就需要点击的按钮,可以自定义点击逻辑。也就是说 跨页面数据传递使用 EventHub,后退使用router.back,这样规避官方api的问题

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(3)
1
https://gitee.com/harmonyos/codelabs.git
git@gitee.com:harmonyos/codelabs.git
harmonyos
codelabs
Codelabs

搜索帮助