el-table表头动态渲染未更新

问题
el-table的表头改为通过获取后端数据动态渲染,发现在请求接口后,表头并未重新渲染。
复制代码
//html
<el-table :data="tableData">
    <el-table-column v-for="(item,index) in tableCol" :key="index">
        <template slot="header">{{item.colName}}</template>
        <template slot-scope="scope">
            {{scope.row[item.prop]}}
        </template>
    </el-table-column>
</el-table>

//js
tableCol:[
    {
        colName: '姓名',
        prop: 'name'
     },
     {
         colName: '年龄',
         prop: 'age'     
     }
]

api.get('/tableColData').then(res=>{
    this.tableCol = res.data
})
复制代码
解决
给el-table-column绑定key时添加一个随机数拼接
<el-table-column v-for="(item,index) in tableCol" :key="Math.random()+index">
</
el-table-column>
题外话
在循环生成数据项的时候,并不建议直接使用index项作为key,由于index都是从0开始,并不能作为唯一key,去方便vue跟踪变化进而重新渲染页面
posted @   南无、  阅读(491)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示