问题现象:tabs切换时,如果之前的tab已经滚动到底部,直接点击其他的tab,将再触发一次onload事件。
问题原因:这种情况下,切换tab会导致触发两次请求数据的方法,一次是监听tab切换事件执行的,另一次是由于之前一个tab已经滚动到底部触发的onload事件。
解决措施:设置一个全局变量tabchange,监听到tab切换事件时设置tabchange为true,在onload事件中,只有判断tabchange为false时才请求数据,并且总是设置tabchange为true。
上代码:
//初始化
data(){
tabchange: false
}
//onload加载事件
onLoad(){
var that = this
setTimeout(() => {
if(!that.tabchange){
that.getListData()
}
that.tabchange=false
}, 500);
},
//tab切换事件
changeType(value){
this.tabchang=true
//其他更改
},