data: {
//定一个状态 无论什么请求在数据回来之前 只允许请求一次 0:请求之前 1:请求结束
apiOnce: 1,
}
methods:{
//点击加载更多数据
moreData() {
//一进来默认阻止 只允许请求一次
if (this.data.apiOnce == 0) {
return
}
//不为0进来 重置请求状态
this.setData({
apiOnce: 0
})
}
}
success: (res) => {
if (res.data.data.goods_list.length == 0) {
this.setData({ //success成功拿到结果过后把状态重置为1
apiOnce: 1
})
}
}
第二种方法 : 点赞逻辑 防止用户重复点赞 当点击完成需要切换灰色图 再次 点击切换红色 (两张图 进行切换的防止重复点击)
// 参数
data"{
flag:true //没点过
}
//方法
getTagsArticle(e) { const that = this; if (that.data.flag == false) { //一进来如果是点过了 那么就阻止
wx.showToast({
title: '正在点赞中,请稍等',
icon: 'none'
})
return
} that.setData({ // 如果没点过 这次点击 切换为点过了 flag: false }) console.log(e) let num = e.currentTarget.dataset.num var postsData = { id: that.data.id, num: num } let dataInfo = requestSign.requestSign(postsData) header.sign = dataInfo wx.request({ url: api.get_tagsArticle, data: postsData, header: header, method: 'POST', dataType: 'json', responseType: 'text', success: ({ data }) => { console.log(data, '成功') if (data.code == 1) { if (num > 0) { that.setData({ tagsNumber: that.data.tagsNumber + 1, tags: 1 }) } else { that.setData({ tagsNumber: that.data.tagsNumber - 1, tags: 0 }) } } else { wx.showToast({ title: data.message }) }
} })
fail: (res) => {},
complete: function () {
setTimeout(function () { //成功过后 设置定时器 1 秒过后表示没点过按钮
that.data.flag = true;
}, 1000); //一秒内不能重复点击
}
; }