解决小程序 wx.showToast不生效问题

1,704 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

目前有这样的一种场景,当我们进行信息新增后要返回上一个页面,但新增成功有一个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即可生效