博客 / 詳情

返回

微信小程序onShow的坑點

最近,公司小程序項目功能更新,部分功能複測,讓某些兼容性問題再次暴露在我的面前,特此發出來給暫未遇到這個問題的開發者,提供一些思路。

onShow表現

這個事件鈎子,在頁面重新顯示的時候觸發,無論是否重新加載,對於一些數據更新和獲取,提供了穩定的處理方案。但是,假如當前頁面有選擇圖片上傳的功能或者文件上傳,選擇文件後,頁面會進入onShow鈎子,且這種情況安卓是必然觸發,IOS系統,身邊設備有限,目前看是不會觸發。

會有哪些問題?

比如當前頁面是一個用户信息表單,你默默地填完所有資料,接着上傳圖片後,發現剛剛上傳的圖片被重置為之前的圖了,同時其它字段可能也恢復了。

捨棄onShow OR 如和解決

首先,進入頁面的場景一般分兩種,第一種正常跳轉;第二種返回到頁面,這種情況要看業務是需要刷新數據還是保持不變,保持頁面不變的情況下就應該捨棄使用 onShow,轉而使用onLoad等一次性方法鈎子;
另外,非要使用onShow,則可以用好存儲機制去記錄歷史操作,比如在onHide、onUnload中,合理的做好標記,還要區別正常的頁面卸載期間,一移出這個標記,當頁面進入onShow階段,根據標記去判斷是否執行初始化的代碼,是否是頁面正常返回進入的,還可以考慮加點標記到頁面地址上。

總結

我一直希望騰訊官方能夠解決這個“問題”,然而,不如信我是秦始皇,只要Demo沒問題,我的框架就沒問題。

user avatar xiangjiaochihuanggua 頭像 jidongdehai_co4lxh 頭像 chongdianqishi 頭像 susouth 頭像 jianqiangdepaobuxie 頭像 ailim 頭像 gaoming13 頭像 pugongyingxiangyanghua 頭像 waweb 頭像 warn 頭像
10 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.