wx.showToast() 在真机中闪烁一下消失

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yang450712123/article/details/80481452

wx.showToast() 在真机中闪烁一下消失

问题描述

在真实的业务场景下,请求接口需要调用 wx.showLoading(),接口请求结束调用 wx.hideLoading()。如果需要给用户提示错误信息,调用 wx.showToast(),在模拟器上没事,但是在真机上会出现提示信息闪烁一下,然后消失。

解决方案

这个问题出现的原因就是因为小程序的内部处理 wx.showLoading() 和 wx.showToast() 调用的是同一个框,都受 wx.hideToast() 或者 wx.hideLoading() 的影响。
比如在真机上你的代码顺序为 wx.showLoading() =>wx.hideLoading() => wx.showToast() ;但是实际你看到的现象是 wx.showLoading() => wx.showToast() =>wx.hideLoading(),受到最后的 wx.hideLoading() 影响,toast 框闪烁一下就消失;
解决方法如下:

wx.showLoading();
wx.hideLoading();
setTimeout( () => {
  wx.showToast({
    title: '提示的错误术语',
    icon: "none",
  });
  setTimeout( () =>{
    wx.hideToast();  
  },2000)
},0);

// 看到代码就明白了,其实就是把 wx.showToast() 放到事件队列的队尾去执行。

猜你喜欢

转载自blog.csdn.net/yang450712123/article/details/80481452