vue+element-ui中的el-table-column配合v-if导致列展示数据出错

  <!-- 当是 我的上传 的时候才展示 -->
<el-table-column v-if="showFormal" prop="dictAuditStatus" label="审核状态" align="center" width="120px">
   <template slot-scope="scope">
 <statusLabel :status_label="scope.row.dictAuditStatus.toString() | auditFilter(dictAuditStatus)" />
        </template>
      </el-table-column>

当审核状态发生改变时,statusLabel组件中的审核状态却没有发生变化

解决方法

给组件添加key并且添加key为随机数 key="Math.random()",具体如下所示:

  <statusLabel :status_label="scope.row.dictAuditStatus.toString() | auditFilter(dictAuditStatus)" :key="Math.random()" />

key的作用

key的作用主要是为了高效的更新虚拟DOM
另外vue中在使用相同标签名元素的过渡切换时,也会使用到key属性,其目的也是为了让vue可以区分它们
key是为每个vnode指定唯一的id,在同级vnode的Diff过程中,可以根据key快速的进行对比,来判断是否为相同节点;若为相同节点,则不进行重新渲染

这里加的目的

给key加一个随机数,则意味着每次只要一发生改变,便让该组件进行重新渲染

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星繁~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值