element-ui分页组件修改当前页current-page后current-change事件不触发

开发项目中用到条件查询功能,点击查询时需要把当前页重置为1,但如果手动设置current-page,点击下一页则不会触发current-change事件
场景如下:

1.首先点击正常分页来到第二页数据正常展示

element-ui分页组件修改当前页current-page后current-change事件不触发_第1张图片

2.点击查询,需求为回到第一页按条件搜索,此时也正常展示

element-ui分页组件修改当前页current-page后current-change事件不触发_第2张图片

3.再次点击分页去第二页,此时分页还停留在第一页,current-change事件不触发

element-ui分页组件修改当前页current-page后current-change事件不触发_第3张图片
此问题并不是每次都出现,不过具体什么原因导致的我也不清楚,毕竟是组件内部封装的方法,摊手摊手

解决方法

给分页加上一个控制显示和隐藏的变量 v-if=“pageshow”

<!-- 分页 -->
<div class="pagination" v-if="pageshow">
    <el-pagination
       @size-change="sizeChangeHandle"
       @current-change="currentChangeHandle"
       :current-page="pageNum"
       :page-sizes="[10, 20, 50, 100]"
       :page-size="pageSize"
       :total="totalPage"
       layout="total, sizes, prev, pager, next, jumper">
   </el-pagination>
</div>

在搜索改变页码的时候加上如下代码

this.pageNum = 1   //pageNum 当前页
this.query()   //获取数据
this.pageshow = false;   //让分页隐藏
this.$nextTick(() => {   //重新渲染分页
    this.pageshow = true;
});

也就是重新去渲染一遍分页组件,问题解决。

此文感谢 Larru-Sun 提供的参考方法,原文链接https://blog.csdn.net/qq_33692349/article/details/91490480

你可能感兴趣的:(vue)