花了一周多,終于把公司小程序做出來了。真機上測試發(fā)現(xiàn)調(diào)用 showToast 不顯示,或者閃一下就沒了。經(jīng)過查找,發(fā)現(xiàn)是與 wx.showLoading 沖突了,兩者調(diào)用的是同個框。 先放上我的錯誤代碼:
我是想請求接口后,將加載框隱藏掉,再顯示 toast 提示。但是真機上發(fā)現(xiàn) showToast 不顯示。正如上面所說,兩者調(diào)用的是同個框。現(xiàn)在,我們分析整個流程: 1、首先顯示 loading 框; 2、然后調(diào)用 success / fail,彈框的內(nèi)容由 loading 變成了 toast; 3、最后調(diào)用 onComplete 時,hideLoading 將彈框隱藏掉了; 很明顯,我們最終把 toast 框隱藏掉了。知道原因后,改起來就容易了。先調(diào)用 wx.hideLoading(),再調(diào)用 wx.showToast() 即可。 建議: 若是在網(wǎng)絡(luò)請求前需要調(diào)用 wx.showLoading,建議在該 success 和 fail 回調(diào)函數(shù)內(nèi)第一行就調(diào)用 wx.hideLoading。即使暫時不需要 showToast 操作。因為以后需要在回調(diào)函數(shù)內(nèi)添加 toast 時, 就不用再管什么順序問題了; 當(dāng) toast 和 loading 同時使用,多注意兩者的調(diào)用順序; 如下是正確代碼:
|