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.4k
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; 

}
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题