美文网首页
el-pagination设置current-page无法更新视

el-pagination设置current-page无法更新视

作者: 钱英俊真英俊 | 来源:发表于2019-10-24 15:42 被阅读0次

current-pageElement-uipagination组件的当前页数设置。需求是返回这个页面的时候需要回到之前的页码数。然而当设置current-page获取表格之后却无法正确渲染。

page确实是5,但显示却不是
代码
<template>
  <div>
   <el-pagination :total="total" 
    :size='20' :current-page="filter.page"></el-pagination>
   <div>{{filter}}</div>
  </div>
</template>

<script>
export default {
  name: 'Test',
  data () {
    return {
      filter: {},
      total: 0
    }
  },
  mounted () {
    this.filter.page = 5
    this.change()
  },
  methods: {
    change () {
      // 模拟数据返回
      setTimeout(() => {
        this.total = 100
      }, 1000)
    }
  }
}
</script>
原因
  • pagination组件会根据total重新计算page是在总页码之内,默认是1
    初始渲染
    这个时候传值是5,但total还没改变,所以传值无效。
  • 那在获取到total之后再次赋值可以吗?
change () {
      // 模拟数据返回
      setTimeout(() => {
        this.total = 100
        this.filter.page = 5 // 再次赋值
      }, 3000)
    }

很可惜,还是不行

因为mounted的时候已经赋过值了,重新赋值,vue也判定为没有改变,所以不会重置。这里哪怕改变对象的指向,只要属性和属性值没变,依然不会造成视图更新。
解决方法:

mounted的时候另取变量存储page的值进行表格数据获取,在获取到total之后进行page更新

相关文章

网友评论

      本文标题:el-pagination设置current-page无法更新视

      本文链接:https://www.haomeiwen.com/subject/dlfdvctx.html