美文网首页
el-table 自定义动态表头:异步更新数据之后表头不更新

el-table 自定义动态表头:异步更新数据之后表头不更新

作者: 听见雨山 | 来源:发表于2020-09-01 11:46 被阅读0次

某次开发中,需求需要做成表头、标题数据均是异步更新,此时出现了一个问题:异步更新数据之后,表体的数据更新了,但是表头的数据并没有更新,或有时更只新一部分,或者错位。

问题出现原因:

 <el-table-column v-for="item in tableData" :key="item.id">
     <!--一级表头文字-->
     <template slot="header" slot-scope="scope">
         <div class="table-head">{{item.name + '(' +item.value + ')'}}</div>
     </template>
     <!--.........战略性省略业务代码.........-->
 </el-table-column>

排查了很久,后发现:在自定义表头的时候,由于是用的v-for循环生成的,因此会给每个循环体一个固定的key,导致数据频繁异步更新时,因为这个key没有变,所以el-table觉得表头数据是没有变化的,因此就只更新了整体表格数据、key值有变化的列的表头。

解决方案:

<!--表头的v-for中的key设置成随机数,避免出现"数据更新,列表头数据不更新"的bug-->
<el-table-column v-for="item in tableData" :key="Math.random()">
  .....
</el-table-column>

相关文章

网友评论

      本文标题:el-table 自定义动态表头:异步更新数据之后表头不更新

      本文链接:https://www.haomeiwen.com/subject/poxcsktx.html