最近公司商城项目,有个小问题,就是在商品详情页>购物车页>确认下单页>支付成功和取消支付都会前往订单详情页。当时我没想这么多就全部跳转都用了navigateTo,这样做的话,第一个问题产生了,业务需要在支付成功后加多一个支付成功的页面,这样navigateTo就可能会超过五层限制;第二个问题就是,在确认支付页面无论支付失败还是支付成功都会跳到下一级页面,确认支付的下一个页面返回时,应该返回到购物车页面,不返回到确认订单页。

首页我想到的是,在使用页面卸载时的生命周期,如果用户返回了,就跳转到购物车页面。但是这样的话就会出现新的问题(具体问题就不细说了)。于是我细想了一下小程序的几个路由,发现了navifateTo和redirectTo配合使用就可以解决业务上的两个问题了。

注意:1.wx.navigateTo 和 wx.redirectTo 不允许跳转到 tabbar 页面,只能用 wx.switchTab 跳转到 tabbar 页面

   2.wx.navigateTo保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面

3.wx.navigateTo 不会将旧页面出栈

4.wx.redirectTo 会将旧页面出栈,再将需要跳转到的页面入栈

小程序在navigateTo五层之后,就不会能再入栈。

解决思路:商品列表     navigateTo     商品详情     navigateTo    购物车      navigateTo     确认订单      redirectTo       订单详情或者其他页面,这样再其他页面返回的时候就是购物车了。

购物车再返回就是商品详情页,然后一直返回到商品列表页

貌似表达得有点凌乱!

小程序navigateTo和redirectTo的使用的更多相关文章

  1. 小程序navigateTo和redirectTo跳转的区别与应用

    最近在做小程序的跳转,发现navigateTo的跳转无法满足业务需求,所以特地记录下 业务需求 类似一个淘宝的在订单界面选择地址的功能,从A页面点击跳转到B页面的地址列表页面,B页面可以选择已有的地址 ...

  2. 微信小程序tabBar与redirectTo 或navigateTo冲突

    微信小程序tabBar与redirectTo 或navigateTo冲突 tabBar设置的pagePath无法再次被redirectTo或navigateTo引用 导致跳转失败,更改为swithTa ...

  3. 微信小程序 navigateTo 传对象参数

    当微信小程序navigateTo传入参数是个object时,请使用JSON.strtingify将object转化为字符串,代码如下: wx.navigateTo({ url: '../sendChe ...

  4. 微信小程序navigateTo /redirectTo/navigateBack 三者区别

    navigateTo 不会将旧页面出栈: redirectTo 会将旧页面出栈,再将需要跳转到的页面入栈: navigateBack 则是将页面栈最后一个元素出栈,因此倒数第二个元素会成为最后一个元素 ...

  5. 原创+转发:微信小程序navigator、redirectTo、switchTab几种页面跳转方式

    什么是事件? 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 详解(以常见的tap点击事情为例) 模板.wxml代码: <view id="tapTest ...

  6. 小程序 欢迎页面 navigateTo和tabBar不能同时指向一个路径

    小程序navigateTo和tabBar不能同时指向一个路径 wx.navigateTo和wx.redirectTo不允许跳转到tabBar页面,只能用wx.switchTab跳转到tabBar页面. ...

  7. 微信小程序——页面之间传递值

    小程序页面传值的方式: 1.正向传值:上一页面 -->  下一页面 url传值 本地储存 全局的app对象 2.反向传值:下一页面 -->  上一页面 本地储存 全局的app对象 先说一下 ...

  8. 微信小程序之页面之间传递值

    页面之间传值有三种方式 1.url传值 2.本地存储传值 3.全局变量传值 1.url传值: 通过url传值的需要通过option来获取参数值. 更多详情可以访问小程序-navigateTo章节. A ...

  9. 小程序wx.navigateTo和wx.redirectTo 都无效

    最近在写小程序,遇到页面跳转时,发现有几次失败.查询资料已解决,总结一下知识点: 一.如下,第5层到到6层时失败(评论页⑤-->返回商品详情页⑥) 登陆①-->主页②-->商品列表页 ...

随机推荐

  1. SteamVR手柄震动控制实现

    SteamVR手柄震动控制实现 public class handCtrl : MonoBehaviour { public SteamVR_TrackedObject _TrackedObject; ...

  2. typescript的lambads解决this关键字找不到属性

    var people = { name: ["abc", "jack", "pepter", "jim"], getna ...

  3. pat1046. Shortest Distance (20)

    1046. Shortest Distance (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The ...

  4. pat1020. Tree Traversals (25)

    1020. Tree Traversals (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Suppo ...

  5. Docker学习笔记(1)-简介

    1. 简介 Docker使用Google公司推出的Go语言开发实现,基于Linux内核的cgroup, namespace以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚 ...

  6. Calendar计算一个月前的日期,踩坑记录

    错误示范:calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);//获取一个月前的今天这种写法假设传入的日期为2019-03-3 ...

  7. vue.js ------ 大牛和网站

    hellogirl前端网站 : http://www.jqhtml.com/category/article FungLeo: http://blog.csdn.net/FungLeo/article ...

  8. vue 修饰符 整理

    事件修饰符 .stop <!-- 阻止单击事件继续传播 --> <a v-on:click.stop="doThis"></a> .preven ...

  9. python面试题——基础篇(80题)

    1.为什么学习Python? Python是一门优秀的综合语言, Python的宗旨是简明.优雅.强大,在人工智能.云计算.金融分析.大数据开发.WEB开发.自动化运维.测试等方向应用广泛 2.通过什 ...

  10. ArcGIS几种数据格式2

    各种数据的组织形式不一样,其中shp.Coverage.Raster.CAD为文件类型,Geodatabase为空间数据库.Workstaion常用Coverage数据格式.现在ESRI公司推荐使用G ...