您好,登錄后才能下訂單哦!
本文實例講述了微信小程序出現wx.navigateTo頁面不跳轉問題的解決方法。分享給大家供大家參考,具體如下:
今天在做微信小程序的時候,做的商品購買流程。流程是這樣的:
商品展示-->商品詳情-->下單頁面-->下單詳情頁面-->支付結果頁面-->跳轉訂單詳情頁面。
但是在支付成功之后,點擊按鈕跳轉,發現怎么也跳轉不了到訂單詳情頁面,前后log都能打印出來,證明已經執行了wx.navigateTo
方法,但是跳轉不成功,而且,坑爹的是也不報錯。
翻看微信小程序開發文檔,參考鏈接:
https://mp.weixin.qq.com/debug/wxadoc/dev/api/ui-navigate.html#wxnavigatetoobject
其中有一行提到:
就是這一句:“注意:為了不讓用戶在使用小程序時造成困擾,我們規定頁面路徑只能是五層,請盡量避免多層級的交互方式。”數一數我的跳轉頁面,當然你可以可以看微信開發者工作的預覽視圖右上角,會出現您當前調試的頁面有5個這樣的提示。
再貼一下我的頁面跳轉情況:
① 商品展示-->② 商品詳情-->③ 下單頁面-->④ 下單詳情頁面-->⑤ 支付結果頁面-->⑥ 跳轉訂單詳情頁面。
就在最后一步的時候已經跳轉不過去了,此時前面已經使用wx.navigateTo
跳轉了五個頁面,剛好達到限制。
然后我試著在下單頁面跳轉到下單詳情頁面的時候換用:wx.redirectTo()
方法跳轉,然后再編譯執行,發現跳轉到訂單詳情頁面成功。然后我把一些不需要返回之后還回到當前頁面的跳轉換成了wx.redirectTo()
來跳轉,解決了wx.navigateTo
跳轉不成功的問題。
wx.redirectTo()
方法,是打開新的頁面,并關閉當前的頁面。這個理解起來可以使用android的啟動模式來理解。就像一個水桶,可以說一個棧,這個桶只能裝得下5個西瓜,本來水桶是沒有西瓜的,然后我們打開一個頁面使用wx.navigateTo
方法啟動的時候,就往水桶里邊扔一個西瓜,這樣五個滿了之后,再打開新的頁面,再往水桶里邊扔西瓜,那肯定是裝不下的了。如果我們使用的是wx.redirectTo()
,當我們打開一個新頁面時,也會往桶里扔一個西瓜,然后會把當前的這個在桶里的西瓜,吃掉,這樣就留出了空間。
所以,在微信小程序頁面跳轉中,如果當前的頁面,在跳轉之后是不必要的,沒有返回到這個頁面的需求的時候,盡量使用wx.redirectTo()
來跳轉打開新的頁面,避免出現上述的問題。
希望本文所述對大家微信小程序開發有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。