HarmonyOS鸿蒙Next中router获取不到参数是什么原因?

HarmonyOS鸿蒙Next中router获取不到参数是什么原因? 跳转之前参数man的length 在log中都打印出来是1。为什么获取参数时候就是 undefined ?

let paramsMap: HashMap<string, GameType> new HashMap();
paramsMap.set("key_gametype", gameType);
BL.error("DefaultLeveLPage befor router.pushUrL *********paramsMap=" + paramsMap.Length)
router.pushUrl({
  url: 'pages/DefaultLevelPage',
  params: paramsMap // 添加params属性,传递自定义参数,任意类型
}, (err) => {
  console.info('Invoke pushUrl succeeded.');
})
aboutToAppear() {
    let params: HashMap<String, GameType> = router.getParams() as HashMap<String, GameType>;
    console.error("DefaultLevelPage*********" + params.length)
    this.gameType = params.get("key_gametype") as GameType;
    console.error("DefaultLeveLPage*********" + this.gameType)
}
E DefaultLevelPage befor router.pushUrL ********paramsMap=1, %{public}s

E DefaultLevelPage*********undefined, %{public}s

更多关于HarmonyOS鸿蒙Next中router获取不到参数是什么原因?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

router传递的参数会经过序列化,过着中会丢失方法。所以无法使用map ,list传参

可以使用AppStorage 实现ability之间数据透传。

参考链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-appstorage-V5

更多关于HarmonyOS鸿蒙Next中router获取不到参数是什么原因?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


有试过在下一层吗?就是params:{xxx:hashmap}

传不过去也很正常,因为你这个class里面带方法,他没法序列化

在HarmonyOS鸿蒙Next中,router获取不到参数的可能原因包括:

  • 路由配置错误:路由路径或参数未在config.json中正确配置,导致无法解析参数。
  • 参数传递错误:在跳转页面时,参数未正确传递或格式不符合要求。
  • 生命周期问题:在页面加载时,参数尚未传递到目标页面,导致获取失败。
  • API使用不当:router.pushrouter.replace方法未正确使用,导致参数未传递。
  • 页面跳转时序问题:页面跳转与参数传递的时序未正确处理,导致参数丢失。
  • 参数解析错误:目标页面未正确解析传递的参数,导致无法获取。

检查路由配置、参数传递、API使用及页面生命周期,确保参数正确传递和解析。

在HarmonyOS鸿蒙Next中,router获取不到参数可能是以下原因:

  1. 路径配置错误:检查router.pushrouter.replace的路径是否正确,确保路径与配置的路由一致。
  2. 参数传递方式错误:确保使用paramsquery正确传递参数。例如,router.push({ path: '/detail', query: { id: 123 } })
  3. 目标页面未正确解析参数:在目标页面中,确保通过this.$route.querythis.$route.params正确获取参数。
  4. 生命周期问题:确保在页面加载时(如onInitonReady)获取参数,避免在未加载完成时访问。
  5. 路由模式问题:检查是否使用了正确的路由模式(如hashhistory),确保与项目配置一致。

通过排查这些问题,通常可以解决router获取不到参数的情况。

回到顶部