可以做个双重保障
给el-table-column设置唯一的key值
<el-table-column
property="currentAuditorNames"
v-if="checkArray('describe')"
label="当前审核人"
key="1"
align="center"
>
</el-table-column>
<el-table-column
property="initiatorName"
v-if="checkArray('sponsor')"
key="2"
align="center"
label="发起人"
>
</el-table-column>
也可以这样
<el-table-column
property="currentAuditorNames"
v-if="checkArray('describe')"
label="当前审核人"
:key="Math.random()"
align="center"
>
</el-table-column>
<el-table-column
property="initiatorName"
v-if="checkArray('sponsor')"
:key="Math.random()"
align="center"
label="发起人"
>
</el-table-column>
但我发现这样写并不能完全规避这个问题
我们在定义一个布尔类型的值 用v-if绑定在 el-table上 例如就叫 resetForm 值是 true/false
然后每次字段条件切换时 就执行
this.resetForm = false
this.$nextTick(()=>{
this.resetForm = true;
})
通过v-if 在每次数据切换时 让表格强制重新渲染一次 这样就可以解决问题了