<el-table-column
v-for="(v, i) in dateHeader"
:key="i"
align="center"
width="100"
>
<template slot="header">
<div>{{ v.date | moment("MM-DD") }}</div>
<div>{{ $moment(v.date).weekday() | formatWeek }}</div>
</template>
<template slot-scope="{ row }">
<span
v-if="row[v.prop]"
class="el-icon-check"
style="color:#0095ff;font-weight: bold"
></span>
<span v-else></span>
</template>
</el-table-column>
控制台打印 数据没问题 已经更新了
找了好多 说是需要<template slot="header">
改为#header=“scope”
我改了之后,没有效果,最后发现是因为:key的问题,最好不要使用index做key,表头部分用v-for循环生成的,给每个item(el-table-colum)绑定的key为prop,数据更新时,key没有变,所以el-table觉得表头数据是没有变化的,因此就只更新了整体表格数据、key值有变化的列的表头。
所以,key使用唯一的值就好了
<el-table-column
v-for="i in dateHeader"
:key="i.date"
align="center"
width="100"
>
<template slot="header">
<div>{{ i.date | moment("MM-DD") }}</div>
<div>{{ $moment(i.date).weekday() | formatWeek }}</div>
</template>
<template slot-scope="{ row }">
<span
v-if="row[i.prop]"
class="el-icon-check"
style="color: #0095ff; font-weight: bold"
></span>
<span v-else></span>
</template>
</el-table-column>