标题说的很清楚,是组件下拉刷新,组件里面是无法直接触发onPullDownRefresh和onReachBottom,得通过父子传值的方式
父组件:
引入子组件并通过ref来传值给子组件的触发函数
import likeCategory from './Components/likeCategory.vue'
<like-category ref="likeCategory" ></like-category>
//**父组件是主页面,支持onPullDownRefresh和onReachBottom**
onReachBottom() {
this.$refs.likeCategory.getCategoryList()
},
onPullDownRefresh() {
console.log("触发下拉刷新")
this.$refs.likeCategory.getCategoryList()
},
子组件:
子组件触发方法,通过携带指定参数完成分页请求
//**注意触发方法时期,我一般用在created生命周期钩子中**
created(){
this.getCategoryList()
},
getCategoryList() {
console.log(this.$props)
let params = {
shopId: this.$props.shopId1 ? this.$props.shopId1:uni.getStorageSync('ShopInfo').id,
access_token: uni.getStorageSync('access_token'),
pageSize:this.pageSize,
pageNumber:this.pageNumber,
}
console.log(params.pageNumber)
if (this.total > 0 && this.total <= this.goodsInfoList.length) {
uni.showToast({
title: '没有更多!',
icon: 'none'
});
return;
}
uni.showLoading({
title: '加载中'
});
if (params.shopId) {
this.$http.get(this.$api.gussYouLove, {
data: params
}).then(res => {
if (res.data.code == 200) {
if(res.data.data.list.length > 0){
if(!!this.goodsInfoList&&this.goodsInfoList.length>0){
res.data.data.list.forEach(info =>{
this.goodsInfoList.push(info)
})
}else{
this.goodsInfoList = res.data.data.list
}
this.total = res.data.data.total;
this.pageNumber++
this.isShow = false
console.log(this.pageNumber)
}else{
this.goodsInfoList = []
this.isShow = true
}
} else {
uni.showToast({
title: res.data.msg,
duration: 2000,
icon: 'none'
});
}
uni.stopPullDownRefresh();
uni.hideLoading();
})
}
},
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。