element的分页查询后页面数据变了,分页却没变的问题
element
A Vue.js 2.0 UI Toolkit for Web
项目地址:https://gitcode.com/gh_mirrors/eleme/element

·
从最后一页点击查询后,页面数据变为第一页的数据了,但是分页会显示2


其实这不算是个Bug,因为你从第十页开始查询,后台查询的数据就是第十页的内容,只是你的数据没有那么多条,所以你的页面会显示2,简单来说就是你从哪一页开始点击的查询,它传到后台查到的就是这一页的数据,但其实我们点击查询后是想让它从第一页开始显示的,

解决方法:使用v-if绑定数据,当每次搜索的时候就注销掉前一个分页Dom,画面刷新完毕后,渲染一个同样的分页,重新渲染必须放到$nextTick中,这样在使用分页就不会出现问题了。
(具体实现):

<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:page-sizes="[10, 20, 30, 40]"
:page-size="params.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
:current-page="page"
v-if="pageshow"
>
</el-pagination>
data中的数据:

// 分页
params: {
pageNum: 1,
pageSize: 10,
},
page: 1,
pageshow: true,
total: 0,
methods中的方法:

methods: {
// 分页
handleCurrentChange(val) {
// console.log(`当前页: ${val}`);
this.params.pageNum = val;
this.getData();
},
handleSizeChange(val) {
// console.log(`每页 ${val} 条`);
this.params.pageSize = val;
this.getData();
}}

//获取列表数据
getData() {
list(this.params, this.tbProcess) //获取数据
.then((res) => {
this.list = res.data.data;
this.total = res.data.total;
})
.catch((err) => {
console.log(err);
});
},
//查询数据
querys() {
this.pageshow = false;
this.params.pageNum = 1; //把页码设置为1然后在发请求
this.getData();
this.$nextTick(() => {
this.pageshow = true;
});
},
如上就可以解决了,(其实这是正常逻辑不是Bug哦)




A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:19 天前 )
c345bb45
1 年前
a07f3a59
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update table.md
* Update transition.md
* Update popover.md 1 年前
更多推荐
所有评论(0)