小程序的自动跳转页面一般会有两个功能,一个是点击跳转,另一个是三秒内未点击则自动跳转,同时添加两个这两个功能会导致点击跳转后,自动跳转仍会执行,即会发生两次跳转。这种情况则需要“上?”,即,如果点击跳转则不需要进行自动跳转。解决办法:设置变量:isRedict: true,点击事件使其值为false,在自动跳转的定时器中,使用判断语句,若isRedict为true,则进行自动跳转。代码如下
//点击事件绑定的函数,跳转order页面
goToOrder() {
this.isRedict = false;
wx.redirectTo({
url: '/pages/order/order',
})
},
//3秒后自动跳转
onShow() {
setTimeout(() => {
if (this.isRedict) {
wx.redirectTo({
url: '/pages/order/order',
})
}
}, 3000);
},
另外3秒后自动跳转在页面的展示,可以在onLoad() 函数中设置定时器去改变渲染的数值,代码如下
//time为渲染页面的数据,初始值为3
//count为用来计数的变量
onLoad: function (options) {
this.changeTime()
},
changeTime() {
if (this.count < 0) {
clearTimeout(timer)
}
const timer = setTimeout(() => {
this.setData({
time: this.count--
})
this.changeTime()
}, 1000);
},