转自: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. onerror="javascript:this.src='images/defaultUpload.png';"【容易导致死循环报错】

    当无法找到默认图片时,onerror="javascript:this.src='images/defaultUpload.png';"容易导致死循环报错

  2. redhat7学习笔记之从零到部署javaweb项目

    REDHAT7学习笔记 1. 安装vmware10 安装过程略,下载地址:链接: https://pan.baidu.com/s/16odKKkRYBxGWDVo1cz_wxA 注意,10以上版本不在 ...

  3. Python学习-第三方库操作

    2018-05-04   12:03:19 Python安装模块,更新模块 #显示模块 pip list #显示过期模块 pip list --outdated #安装模块 pip install x ...

  4. Android源代码分析之拍照、图片、录音、视频和音频功能

    Android源代码分析之拍照.图片.录音.视频和音频功能   //选择图片 requestCode 返回的标识 Intent innerIntent = new Intent(Intent.ACTI ...

  5. mac版sublime 无法下载插件(Vue 代码无高亮问题)

    1.官方下载sublime(http://www.sublimetext.com/3) 然后需要两步(1)上传插件主包Package Control(2)更改channels的配置信息(原来是国外的需 ...

  6. 机器学习之代价函数(cost function)

    代价函数(有的地方也叫损失函数,Loss Function)在机器学习中的每一种算法中都很重要,因为训练模型的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中提到的梯度,防止过拟合 ...

  7. idea之jrebel热部署使用教程

    JRebel是一个J2EE热部署的工具.使用它可以减少浪费8-18%的开发时间在项目的构建和部署上.虽然Java也提供了HotSpot的JVM,但是如果你修改的类中有方法名称变动的话,HotSpot就 ...

  8. windows平台最简单的rtmp/hls流媒体服务器

    feature: rtmp/hls live server for windows, double click to run,don't need config. run and quit: doub ...

  9. python 面向对象(其他相关)

    python 面向对象(其他相关): (思维导图    ↑↑↑↑↑↑) 一.issubclass(obj,cls) 检查obj是否是类cls的对象 class Base(object): pass c ...

  10. POJ 3276 Face The Right Way(反转)

      Face The Right Way Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6038   Accepted: 2 ...