项目场景:
elementUI
描述:点击+在对应的下一行增加一个空行,点击-删除当前行。看起来so eazy,实际情况相反,也可能是我的技术能力有限。主要遇到了2个问题
问题描述:
1.删除很简单实现了,增加的时候出现添加的数据更新,但是页面不更新的情况;
2.增加的时候增加的数据总是重复我点加号的下一行数据。
3.关于el-table不更新有的帖子说增加:key,实际没有作用,下边我将有问题的和解决后的代码提供给大家
原因分析:
1.页面不更新,el-table绑定的是数组,数组直接赋值不能被 Object.defineProperty 检测到,所以我们采用this.$set方法强制进行数据的更新操作
2.增加的数据总是跟+的下一行重复,说明可能是我们的循环写的不对
解决方案:
html没啥好说的
<el-table
:data="formdata.FAMILYJSON"
style="width: 100%"
align="center"
:key="Math.random()"
>
<el-table-column label="姓名">
<template slot-scope="scope"
><el-input
v-model="scope.row.NAME"
:maxlength="20"
:disabled="!editable"
></el-input
></template>
</el-table-column>
<el-table-column label="与本人关系">
<template slot-scope="scope"
><el-select
v-model="scope.row.RELATION"
filterable
:clearable="editable"
:disabled="!editable"
:readonly="!editable"
placeholder="请选择与本人关系"
>
<el-option
v-for="item in dicts.RELATIONTYPE"
:key="item.NODECODE"
:label="item.NODEDESC"
:value="item.NODECODE"