小程序跳转页面的时候,用户点击过快会导致 多次跳转页面的情况,
这是一个非常糟糕的体验,所以我们必须组织这的情况发生
- 方案一:
设置一个变量来控制
//mine.js
data : {
hasTap:false
}
toMyOrder() {
let that = this
if (!this.data.hasTap){
that.setData({
hasTap: true
},() => {
wx.navigateTo({
url: '/pages/MyOrder/MyOrder',
success: function () {
that.setData({
hasTap: true
})
}
})
})
}else{
return
}
},
不要忘记在回到(或者离开)这个页面的时候,重新把hasTap设置成为false
onShow(){
this.setData({
hasTap: true
})
}
2.方案二(搬运)
//utils.js
//防止多次重复点击 (函数节流)
export function throttle(fn, gapTime) {
if (gapTime == null || gapTime == undefined) {
gapTime = 1500
}
let _lastTime = null
return function () {
let _nowTime = + new Date()
if (_nowTime - _lastTime > gapTime || !_lastTime) {
fn()
_lastTime = _nowTime
}
}
}
//mine.js
bindUpload: throttle(() => {
wx.navigateTo({
url: '/pages/MyOrder/MyOrder',
})
}, 1000)