微信小程序wx.showToast弹窗没完成就跳转,加入延时执行

本文探讨了小程序中使用wx.showToast弹窗后立即跳转的问题,并提供了通过setTimeout实现延迟跳转的解决方案。同时,解决了弹窗文字显示不全的情况,通过设置icon为‘none’增加文本显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、wx.showToast弹窗没完成就跳转页面

开发小程序的过程中,想实现点击按钮后出现弹窗然后跳到个人中心。

wx.showToast({
  title: '已完成答题,看缘分榜喽~',
  icon: 'loading',
  duration: 2000,
  success:function(){
    wx.redirectTo({
        url: '../my'
    }) 
  }
})

想要实现弹窗出现2秒后跳到个人中心,但实际运行时发现,有时弹窗闪一下就跳转,或者直接跳转页面

这是为啥?

原来 成功回调函数在wx.showToast执行成功立即执行,执行成功不等于执行完毕,也就是说弹窗刚执行success中的函数也就开始执行了,这里的duration:2000的设置对success里函数的执行是没有影响的。

那怎么解决?

想到延时操作,给想要等弹窗消失后再执行的操作加上延迟效果就行了。用到setTimeout

wx.showToast({
    title: '已完成答题,看缘分榜喽~',
    icon: 'loading',
    duration:2000, 
    success:function(){ 
        setTimeout(function () { 
            wx.redirectTo({ 
                url: '../my'
             }) 
         }, 2000) 
     } 
 })

 

2、还有一个问题,我们在弹窗中加入文字,但是运行出来只显示了一行字。为什么呢?

显示效果表示有字数限制。代码为上面第二个

                                                                             

原来 title只显示7个字,多余的字 toast 会自动隐藏

解决方法是设置 icon:‘none’ 就可以了,这样可以添加更多文本;但是图标就不能显示了

                                                                         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值