小程序模板網(wǎng)

解決微信小程序真機(jī) showToast 不顯示

發(fā)布時(shí)間:2018-08-01 09:45 所屬欄目:小程序開(kāi)發(fā)教程

花了一周多,終于把公司小程序做出來(lái)了。真機(jī)上測(cè)試發(fā)現(xiàn)調(diào)用 showToast 不顯示,或者閃一下就沒(méi)了。經(jīng)過(guò)查找,發(fā)現(xiàn)是與 wx.showLoading 沖突了,兩者調(diào)用的是同個(gè)框。

先放上我的錯(cuò)誤代碼:

 

				
  1. // 請(qǐng)求事件
  2. requestEvent: function() {
  3.  
  4. wx.showLoading({
  5. title: '正在加載中',
  6. })
  7. wx.request({
  8. url: '',
  9. success: function(res) {
  10. wx.showToast({
  11. title: '成功',
  12. duration: 2000
  13. })
  14. },
  15. fail: function() {
  16. wx.showToast({
  17. title: '失敗',
  18. duration: 2000
  19. })
  20. },
  21. complete: function() {
  22. wx.hideLoading()
  23. }
  24. })
  25. }

我是想請(qǐng)求接口后,將加載框隱藏掉,再顯示 toast 提示。但是真機(jī)上發(fā)現(xiàn) showToast 不顯示。正如上面所說(shuō),兩者調(diào)用的是同個(gè)框?,F(xiàn)在,我們分析整個(gè)流程:

1、首先顯示 loading 框;  2、然后調(diào)用 success / fail,彈框的內(nèi)容由 loading 變成了 toast;  3、最后調(diào)用 onComplete 時(shí),hideLoading 將彈框隱藏掉了;

很明顯,我們最終把 toast 框隱藏掉了。知道原因后,改起來(lái)就容易了。先調(diào)用 wx.hideLoading(),再調(diào)用 wx.showToast() 即可。

建議:

若是在網(wǎng)絡(luò)請(qǐng)求前需要調(diào)用 wx.showLoading,建議在該 success 和 fail 回調(diào)函數(shù)內(nèi)第一行就調(diào)用 wx.hideLoading。即使暫時(shí)不需要 showToast 操作。因?yàn)橐院笮枰诨卣{(diào)函數(shù)內(nèi)添加 toast 時(shí), 就不用再管什么順序問(wèn)題了;  當(dāng) toast 和 loading 同時(shí)使用,多注意兩者的調(diào)用順序;

如下是正確代碼:

 

				
  1. // 請(qǐng)求事件
  2. requestEvent: function() {
  3.  
  4. wx.showLoading({
  5. title: '正在加載中',
  6. })
  7. wx.request({
  8. url: '',
  9. success: function(res) {
  10. wx.hideLoading()
  11. wx.showToast({
  12. title: '成功',
  13. duration: 2000
  14. })
  15. },
  16. fail: function() {
  17. wx.hideLoading()
  18. wx.showToast({
  19. title: '失敗',
  20. duration: 2000
  21. })
  22. }
  23. })
  24. }


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://22321a.com/wxmini/doc/course/24675.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢