转自:http://www.yilingsj.com/xwzj/2018-11-25/weixin-miniprogram-navigator.html

微信小程序中的页面跳转用navigator就行了,但如果需要跳转的页面路径跟系统底栏tabBar中的相同时,就无法跳转了......

这个navigator本来该放前面说的,不知道怎么回事就写漏掉了,现在补上来。

一、navigator是什么?

微信小程序官方释义为:页面链接。文档地址:
developers.weixin.qq.com/miniprogram/dev/component/navigator.html。此时我们应该知道这东西可以干嘛了,就是类似网页中的a标签的用途。

二、navigator有什么坑?

这一切还要从我们的设计稿说起。在首页的时候,可以看到底栏是一个tabBar,一共是有5个链接的。如图:我们再来看下我的订单页面。如图:可以看到有“查看物流”、“确认收货”两个按钮。由于当时页面不完整,所以就直接让其跳转到了首页,也就是:/pages/index/index页面

按理说,这没毛病对吧。反正navigator是用来做超链接跳转用的,而且这个首页地址也是存在的。但是!神奇的事情出现了!那就是:此时我的订单页面中的这两个链接无法跳转到首页,点击此页面的商品图是可以成功跳转到商品详情页的!

此时出现这种结果,让我很是懵逼!不科学啊,这页面地址明明有的啊,为什么不跳转呢?!

三、当跳转的链接跟tabBar中pagePath的路径相同时无法跳转

一脸懵逼只是从网上搜索,于是后经搜索才得知:当跳转的链接跟tabBar中pagePath的路径相同时无法跳转

怎么理解呢?我们来看下app.json中的tabBar代码吧。如图:可以看到list数组里的第一个对象的pagePath就是pages/index/index

四、解决方法:open-type=switchTab

在文档中有这样一个属性名-- open-type,释义是:跳转方式。一共有6个值,分别是:
navigate,保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabBar 页面。使用 wx.navigateBack 可以返回到原页面。;
redirect,关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabBar 页面。;
switchTab,跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面;
reLaunch,关闭所有页面,打开到应用内的某个页面;
navigateBack,关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。;
exit,退出小程序,target="miniProgram"时生效;
一堆描述,其实我也不知道描述的是啥!(想看官方文档的可拉上面找链接。)主要还是因为不能充分理解 tabBar 页面到底是啥!只好按照网上说的方法操作,把订单页面中的那两个按钮都添加上open-type="switchTab"。然后一保存再点击就可以跳转了,开森!

由于当时自己对两个以上按钮都用了component组件进行封装,所以这个坑在别的地方又突显了出来!

五、open-type=switchTab也有坑

需要注意的是:switchTab只能跳转到 tabBar 页面!!!。什么意思呢?拿首页的设计稿来说,底部的tabBar 里面有5个页面的链接,而在使用这个switchTab时,跳转的链接需要是这5个链接里面的才行,不在这5个链接内的继续使用open-type="switchTab"是无法跳转的!

别问我是怎么知道的,因为我掉坑中了!

微信小程序从入坑到放弃之坑十二:navigator无法跳转的坑的更多相关文章

  1. 微信小程序登入流程

    微信小程序登入流程 一.首先前端先传code去后端 wx.login({ success(res) { if (res.code) { //发起网络请求 wx.request({ url: app.g ...

  2. [入门到吐槽系列] 微信小程序 敏感违规图片检测 mediaCheckAsync,客服接口 消息推送 的各种坑分享!

    前言: 最近需要做个用户上传图片,服务端校验图片问题的需求.需要使用小程序消息推送,异步接受腾讯的图片验证回调.实在太多坑了. 相信10分钟看完本文的朋友,可以非常顺利避坑. 前期准备: 首先需要一个 ...

  3. 微信小程序的机会在于重新理解群组与二维码

    历时一年,唯一一个尚未发布就获得Pony Ma与Allen Zhang站台的产品:微信小程序,将于2017年1月9日正式上线了.我很期待.唯一要警惕的是:防止长考出臭棋. 在上线前夕,我对于如何借助小 ...

  4. 从微信小程序开发者工具源码看实现原理(二)- - 小程序技术实现

    wxml与wxss的转换 1.wxml使用wcc转换 2.wxss使用wcsc转换 开发者工具主入口 视图层页面的实现 视图层页面实现技术细节 视图层快速打开原理 视图层新打开页面流程 业务逻辑层页面 ...

  5. 微信小程序结合原生JS实现电商模板(二)

    接 <微信小程序结合原生JS实现电商模板(一)>,在首页列表加入购物车到购物和模块增删数量,动态计算商品价格实现后,本次提交主要实现了商品详情(还不完善)简单页面,从商品详情页跳转到购物车 ...

  6. 微信小程序——仿jqueryValidate表单验证插件WxValidate的二次封装(一)

    在做web开发时,表单验证插件我们前端用的是jqueryValidate,由于个人主要精力是在后台JAVA开发上,为了让插件与后台更好的结合和使用,通过JAVA的自定义组件将表单全部重新写了一边,同时 ...

  7. 微信小程序云开发-云存储-带图片的商品列表携带id跳转至商品详情

    一.商品列表页 1.wxml文件 在view中添加点击事件goToGoodDetail,绑定数据data-id <!-- 添加点击事件goToGoodDetail --> <view ...

  8. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  9. 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...

随机推荐

  1. 【数据处理】OneHotEncoder编码

    原创博文,转载请注明出处! # OneHotEncoder编码      OneHotEncoder编码称为"哑编码"或"独热编码",是将表示分类的数据扩维度, ...

  2. SmartSql 动态仓储

    动态代理仓储 SmartSql源码:https://github.com/Ahoo-Wang/SmartSql 简介 动态代理仓储(SmartSql.DyRepository)组件是SmartSql非 ...

  3. 【spring源码学习】spring配置的事务方式是REQUIRED,但业务层抛出TransactionRequiredException异常问题

    (1)spring抛出异常的点:org.springframework.orm.jpa.EntityManagerFactoryUtils public static DataAccessExcept ...

  4. SQL的 like 中间字符通配 用法

    中间的字符也可以用通配符匹配如果业务需求是找出某表中某字段是“好*****上”的数据,SQL语句应该写成 select * from Table where UserName like '%好%上%' ...

  5. 【转】刚发现一个linux在线文档库。很好很强大。

    原文网址:http://blog.csdn.net/longxibendi/article/details/6048231 1.网址: http://www.mjmwired.net 2.比如查看这个 ...

  6. jdk1.8新特性之lambda表达式

    lambda表达式其实就是指一个匿名函数,应用最广泛的就是匿名内部类的简化.在jdk1.8之前,我们定义一个匿名内部类可能需要写一大坨代码,现在有了lambda之后,可以写的很简洁了.但不是说lamb ...

  7. linux误删数据恢复

    linux下数据恢复工具有: 1.通过分析文件系统的日志,解析文件的inode,可以恢复ex3 ex4的文件系统下的数据 extundelete:扫描inode和恢复数据同时进行,因此恢复速度很快.支 ...

  8. linux常用小技巧(持续更新中)

    一.设置固定ip地址1.config查看用的是哪一个网卡这是假设用的是eth12.修改dns地址vim /etc/resolv.confsearch 域名地址nameserver 192.168.3. ...

  9. JSONUtils的几个常用方法

    1.首先新建1个JSONUtils类 public class JSONUtils { /** * * @author wangwei JSON工具类 * @param * */ /*** * 将Li ...

  10. snmp安装zabbix

    zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题.  zabbix由2部分构成,zabbix server与可选组件zabbix ...