業務背景:從提問跳到列表需要刷新,以顯示剛提交的數據。
但是官方文檔 wx.switchTab 明確指明路徑后是不能帶參數的,怎么辦?
網上有很多解決方案是:switchTab成功跳轉后調用success回調,此時可以拿到跳轉后頁面的page對象,從而調用頁面onLoad方法重載頁面。比如:
wx.switchTab({ url: '../index/index', success: function(e) { var page = getCurrentPages().pop(); if (page == undefined || page == null) return; page.onLoad(); } })
但經過測試:發現在電腦工具端,偶爾行,偶爾不行;在手機上調試,則完全不行。
解決方案:
可以換一種思路,跳轉頁面的時候傳參,是為了有個標識,是為了下一個頁面更方便的展示信息。我們可以在switch跳轉之前設置一個全局變量,到下一個頁面的時候,直接去獲取全局變量。
app.ajaxPost('dbask/ask', issueInfo, (res) => { wx.hideLoading() if (res.data.success) { app.globalData.issueRefresh = true wx.switchTab({ url: '/pages/issueList/issueList' })
在列表頁面時,去獲取該參數,同時利用onShow,因為onShow是每次顯示都會調用的
onShow: function () { if (app.globalData.issueRefresh) { this.onPullDownRefresh() app.globalData.issueRefresh = false } },