vue中封装element-ui分页组件的问题?

我想把element-ui的表格和分页组件封装成一个子组件,封装分页部分的时候遇到一个问题,就是el-pagination的“page-size”这个属性绑定的值好像不能为props中的变量不然会产生单项数据流相关的报错,例如封装的一个分页组件如下:
image.png
然后父组件中这样引入:
image.png
效果大致如下:
image.png
当我把50条/页改为10条/页时,会触发element-ui的page-size事件从而改变pageSize,但又因为这个pageSize是props,接收的fatherPageSize,会导致直接绕过了fatherPageSize变量而去更改pageSize,所以会报错:
image.png
想到过一个解决办法就是把pageSize放在data中,然后父组件通过this.$refs来传值,除此之外还有好的解决方法吗?

阅读 2.6k
2 个回答

方法1 取巧最简单

父组件的fatherPageSize改一下
fatherPageSize:{
size:50
}
传递给子组件的时候
<children :size="fatherPageSize.size />"

方法2,

<children :pagesize.sync="fatherPageSize />"


props:{
pagesize:String
},
data(){

return {
    size:this.pagesize    

}
},
methods:{

sizeChange(v){
    this.$emit('update:pagesize',v);
    this.size=v; 

}
}

推荐问题