elementUI分页中改变current-page绑定的值无效问题的解决

79 篇文章 1 订阅
5 篇文章 0 订阅

问题

今天在使用elementUI分页组件el-pagination时,在方法中修改current-page绑定的值,正常来说页面上显示的当前所在的页码会随着改变,但是并没有。

current-page绑定的值为1
在这里插入图片描述
当我将current-page绑定的值改为3时,数据改变了但是视图中的显示没有改变
在这里插入图片描述

分页代码:

<!-- 分页 -->
<el-pagination
  background
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :current-page="currentPage"
  :page-size="size"
  layout="total, prev, pager, next"
  :total="total">
</el-pagination>

解决方法

第一种: 添加双向绑定
在current-page后添加 .sync

<!-- 分页 -->
<el-pagination
  background
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :page-size="size"
  layout="total, prev, pager, next"
  :total="total"
  :current-page.sync="currentPage">
</el-pagination>

第二种:给组件添加key属性
在el-pagination组件中添加一个key属性,在每次修改current-page绑定的值时都对key绑定的值进行修改(可以考虑使用随机数或当前时间字符串,亦或者是直接将current-page的新值传给key ),这样在每次修改current-page绑定的值时都强制刷新组件了。

添加key属性:

<el-pagination
  background
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :page-size="size"
  layout="total, prev, pager, next"
  :total="total"
  :current-page.sync="currentPage"
  :key="key">
</el-pagination>

修改currentPage的值时:

data () {
  return {
  	currentPage: 1, 
  	key: 0,
  }
},
methods:{
	changeCurrentPage(){
		this.currentPage = 2
		this.key = 2
	}
}

第三种:添加v-if
这种方法与第二种方法类似。给分页组件添加一个v-if绑定,当修改current-page的绑定时,同时改变下v-if的绑定值以实现对分页组件的重新渲染。

<div v-if="show">
	<el-pagination
 	  background
	  @size-change="handleSizeChange"
	  @current-change="handleCurrentChange"
  	:page-size="size"
  	layout="total, prev, pager, next"
 		:total="total"
	  :current-page.sync="currentPage">
	</el-pagination>
</div>

修改currentPage的值时:

data () {
  return {
  	currentPage: 1, 
  	show: true,
  }
},
methods:{
	changeCurrentPage(){
		this.currentPage = 2 //修改currentPage
		this.show = false;//让分页隐藏
		this.$nextTick(() => {//重新渲染分页
    		this.show = true;
		});
	}
}

以上就是解决elementUI分页中改变current-page绑定的值无效问题的三种方法。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值