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() 放到事件队列的队尾去执行。
|