【疑难杂症】关于element-ui:internalCurrentPage不同步的问题

当遇到element-ui的内部属性internalCurrentPage不同步更新的问题时,可以通过初始化total为null,使用v-if控制分页组件显示,或直接修改el-pagination的internalCurrentPage值来解决。此问题在初始化total为0,同步改变currentPage,再异步改变时尤为明显。源码分析显示,internalCurrentPage的更新依赖于currentPage和getValidCurrentPage方法。
摘要由CSDN通过智能技术生成

关于getValidCurrentPage不同步更新,目前还有相关的issues:https://github.com/elemefe/element/issues/3188#issuecomment-429197298

前置条件如luoye-fe大佬所言:

触发条件

1、total 初始化为 0

2、同步操作中改变 currentPage 的值

3、异步操作中改变 total 的值

4、分页组件拿到不合法的 currentPage,将页数改为 1,之后即使 total 大于0,也没有重置 currentPage

 

解决方案

1.total 初始化为 null

2.el-pagination 使用v-if total > 0 来控制是否显示

3.例如ref,主动修改el-pagination.internalCurrentPage的值(仅需在初始化的时候)

 

源码分析

接下来是分析element-ui的源码:

打开/src/pagination/pagination.js可以看到,internalCurrentPage的值是通过getValidCurrentPage(value)方法修改的,

略去它自带的下一页等操作,可以找到internalCurrentPage初始化和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值