鸿蒙开发路由跳转踩坑

文章目录

  • 前言
  • 常见路由不能跳转问题
  • 总结
一、前言
02-25 10:40:10.799 42182-2075594 E C03900/Ace: [manifest_router.cpp(GetPagePath)-(0)] [Engine Log] can't find this page pages
02-25 10:40:10.799 42182-2075594 E C03900/Ace: [page_router_manager.cpp(StartPush)-(0)] [Engine Log] this uri not support in route push.

开发中碰到不能跳转页面,这么简单的跳转,怎么会出现问题呢。跳转地址,复制粘贴了,不可能出错了呀,但依然是不能跳转。

网上查看,有很多人都是说,main_pages.json 文件没有配置跳转的链接。目标页面的链接确实配置了呀。

不死心的我,以为预览的问题。于是我打开了模拟器,想要跳转。

正好这个时候,运行的是Index的默认页面,不是我自己写的页面。也巧,这个时候,这个页面的Hello World 没有点击事件。于是,我就添加上点击事件,点跳转,居然可以跳转。

这个时候我意识到,我自己写的当前页面,没有放入main_pages.json 中。是的,当我把当前页面页添加进main_pages.json 中,页面能够跳转了。

二、总结路由不能跳转的几种情况,怎么避免
1、路由链接不能写错

由于习惯性,我们可能把跳转链接前面多写了个斜杠。比如:/pages/RegistrationSuccessPage

正确写法如下:

 Button('点击跳转页面').onClick(()=>{
            router.pushUrl({
              url: "pages/RegistrationSuccessPage"  //开头不能加斜杆
            })
          })
2、main_pages.json 要添加目标链接,同时当前页面的链接也要写到main_pages.json 中。
{
  "src": [
    "pages/Index",
    "pages/RegistrationSuccessPage",
    "pages/LoginPage"
  ]
}

比如我们要从,LoginPage 跳转到 RegistrationSuccessPage页面,这个时候,一定要把 "pages/LoginPage"也加到main_pages.json 中。

这个问题也是我此次碰到的问题。

为了避免这些可能出现的问题,建议把所有页面都添加进来,避免这种低级错误

3、一定要检查每个字符

这里建议是直接复制粘贴。因为我们手打的太容易出错了。如果上面几种情况都没问题,一定是拼错字符了。

最后呢,提醒。main_pages.json 中的链接一定不能写错,怎么判断有没有写错呢,直接按住command + 点击链接,如果能够正常跳转,就说明没问题,然后将main_pages 中的链接copy到router.pushUrl 中就可以了。

总结

1、碰到的坑,以及如何处理解决的
2、常见的路由不能跳转原因总结

如果对你有一点点帮助,那是值得高兴的事情。:)
我的csdn:http://blog.csdn.net/shenshizhong
我的简书:http://www.jianshu.com/u/345daf0211ad

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值