最近公司商城項目,有個小問題,就是在商品詳情頁>購物車頁>確認下單頁>支付成功和取消支付都會前往訂單詳情頁。當時我沒想這麼多就所有跳轉都用了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
貌似表達得有點凌亂!支付