elementui表格数据未刷新,element table不显示数据

  elementui表格数据未刷新,element table不显示数据

  最近在做vue的项目时发现了一个问题。今天,我来解决。本文主要介绍在不更新数据的情况下改变elementUI的表的问题的解决方法。有兴趣的可以去了解一下。

  预期效果:点击输入框旁边的图标,输入框变成输入状态;此处输入的可编辑字段不是数据的原始属性,也不是分配数据时已经存在的字段。

  问题原因:创建Vue的实例时和数据赋值时没有声明editable,所以不会被Vue转换成响应式属性,自然也不会触发视图的更新。

  

解决方法:

  1.在给数据赋值之前,向数组添加可编辑的属性。

  这里就不贴代码了。大致思路是:你得到列表信息后,缓存在一个临时数组中(不能是data中定义的对象),循环遍历列表信息,给每条数据加上一个属性可编辑值false,然后把处理后的列表信息赋给data。

  2.使用:键或v-if

  修改绑定到表的键值可以触发表的重新呈现,以便修改后的数据可以在表中更新和呈现。

  el-table :data=data :key=num 条带边框

  El-table-column align= center label=字段的中文名称

  模板槽-范围=“范围”

  div style= display:flex;

  el-input :disabled=! scope . row . editable style= margin-right:10px;/el-input

  El-button @ click= change edit(scope . row) type= text icon= El-icon-edit-outline /El-button

  /div

  /模板

  /El-表格-列

  /el-table

  导出默认值{

  data(){

  返回{

  数字:0,

  数据:[]

  }

  },

  方法:{

  changeEdit(row){

  //每点击一次图标键,就会自动增加一个。

  row.editable=true

  num

  }

  }

  }

  这种方法有一个问题:给表格添加一个默认的高度,这个时候,如果数据多了,就会出现滚动条;当滚动条被拉到底部时,点击图标使相应的输入框可编辑,同时触发表格渲染,滚动条会回到顶部。如果要查看操作过的输入框,需要再次将滚动条拉到底部;这种体验很不好。如果有这种情况,建议采用以下方法。

  3.使用$set

  $set可以动态给数据添加响应式属性,使editable响应式,可以直接触发页面更新。

  el-table :data=data 条带边框

  El-table-column align= center label=字段的中文名称

  模板槽-范围=“范围”

  div style= display:flex;

  el-input :disabled=! scope . row . editable style= margin-right:10px;/el-input

  el-button @click=changeEdit(范围。$index,scope . row) type= text icon= El-icon-edit-outline /El-button

  /div

  /模板

  /El-表格-列

  /el-table

  导出默认值{

  data(){

  返回{

  数字:0,

  数据:[]

  }

  },

  方法:{

  changeEdit(索引,行){

  row.editable=true

  这个。$set(this.data,index,row);

  }

  }

  }

  根据上面的方法扩展:当vue可以检测到数组的变化时,触发更新。

  changeEdit(索引,行){

  row.editable=true

  this.data.splice(1,0);

  }

  关于改变elementUI的表的数据而不进行更新的问题的解决方法,本文到此为止。有关不更新的元素UI表格内容的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: