最近公司商城项目,有个小问题,就是在商品详情页>购物车页>确认下单页>支付成功和取消支付都会前往订单详情页。当时我没想这么多就所有跳转都用了navigateTo,这样作的话,第一个问题产生了,业务须要在支付成功后加多一个支付成功的页面,这样navigateTo就可能会超过五层限制;第二个问题就是,在确认支付页面不管支付失败仍是支付成功都会跳到下一级页面,确认支付的下一个页面返回时,应该返回到购物车页面,不返回到确认订单页。小程序
首页我想到的是,在使用页面卸载时的生命周期,若是用户返回了,就跳转到购物车页面。可是这样的话就会出现新的问题(具体问题就不细说了)。因而我细想了一下小程序的几个路由,发现了navifateTo和redirectTo配合使用就能够解决业务上的两个问题了。spa
注意:1.wx.navigateTo 和 wx.redirectTo 不容许跳转到 tabbar 页面,只能用 wx.switchTab 跳转到 tabbar 页面code
2.wx.navigateTo保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack
能够返回到原页面blog
3.wx.navigateTo 不会将旧页面出栈生命周期
4.wx.redirectTo 会将旧页面出栈,再将须要跳转到的页面入栈路由
小程序在navigateTo五层以后,就不会能再入栈。it
解决思路:商品列表 navigateTo 商品详情 navigateTo 购物车 navigateTo 确认订单 redirectTo 订单详情或者其余页面,这样再其余页面返回的时候就是购物车了。程序
购物车再返回就是商品详情页,而后一直返回到商品列表页im
貌似表达得有点凌乱!支付