标题说的很清楚,是组件下拉刷新,组件里面是无法直接触发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();                                            })                }    },