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’ 就可以了,这样可以添加更多文本;但是图标就不能显示了