最近公司商城項目,有個小問題,就是在商品詳情頁>購物車頁>確認下單頁>支付成功和取消支付都會前往訂單詳情頁。當時我沒想這么多就全部跳轉都用了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 訂單詳情或者其他頁面,這樣再其他頁面返回的時候就是購物車了。


購物車再返回就是商品詳情頁,然后一直返回到商品列表頁
貌似表達得有點凌亂!
