小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
目前有这样的一种场景,当我们进行信息新增后要返回上一个页面,但新增成功有一个toast提示信息提交成功,但toast提示一闪而过。
问题原因
Wx.showToast只在当前页面生效,所以当你新增成功因为立马返回上一个页面,导致toast提示不明显或者根本看不到
解决方案
我们可以增加新增成功后的延时函数来解决这个问题,具体代码如下
success: function (res) {
console.log(res.data);
wx.showToast({
title: '感谢贡献,审核后展示!',
icon: "none",
duration: 500,
})
setTimeout(function(){
wx.navigateBack({
delta: 1 //小程序关闭当前页面返回上一页面
})
},500)
},
当我们进去request请求后,在success回调函数中加入我们要先进行showToast的代码编写,然后再设置延时函数,建议延时函数和showToast的弹窗时间保持一致。这样在请求成功返回上一页面之前就可以进行消息的弹框提示,不过此方式要注意当前的功能操作,如果你是进行表单的提交,就要注意因为加了延时,可能造成用户多次点击的现象,要做防重复提交出来,防止新增多条相同的数据。
showToast彻底失效问题解决
除了有一闪而过的场景,也还有另一种情况就是直接不生效,这个就要看是否有别的因素进行影响,例如 是否在同一个方法中使用了wx.showLoading,这两者不能同时使用
两者是不可以进行同时使用的,如果有这种使用场景,可在调研了showLoading后,调用hideLoading隐藏,再调用showToast即可生效