1. 程式人生 > >微信小程式 navigate頁面跳轉問題解決方案

微信小程式 navigate頁面跳轉問題解決方案

最近在跟著別人做外包小程式,在跳轉的時候遇到很大的問題 ,由於微信小程式的navigateBack是不會重新整理原來頁面的,所以當我要做到如下邏輯時,感到十分困惑,同時覺得無法控制後退按鈕指向頁面這一設定十分不科學

先來看看問題所在,例如我要實現如下頁面邏輯
問題
星號表示添加了資料的地址管理頁

要做到能回退(回退的意思是指點選左上方按鈕回到上一頁面),我們不能用redirectTo去實現跳轉,因為這個函式會把當前頁面pop出頁面棧,導致我們不能回退到正確的頁面,而又不能在第三到第四階段使用navigateTo或者redirectTo,因為這樣的話回退不能直接回退到index,而是隻會不斷回退,再加上微信最多隻能有5個頁面,所以不能頻繁使用navigateTo

(保留當前頁面跳轉新頁面),所以綜合各種考慮,最後邏輯如圖:

這裡寫圖片描述

那麼問題來了,微信的navigateBack函式不但不重新整理資料,而且也沒有success回撥函式提供,這裡不得不自行呼叫頁面重新整理,例如:

//更新舊頁面
var pages = getCurrentPages();
var prePage = pages[pages.length - 2];
prePage.getLocInfo();

wx.navigateBack ({
    url: '../locMan/locManView',
})

但在實際應用中可能就是存在另外一個問題,就是該段處理中,頁面棧到底保留的是什麼頁面,一定要確保資料非同步儲存後再跳轉頁面,不然如果非同步還沒結束,頁面就已經轉移了的話 ,該解決方案會失敗。