关于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初始化和