解决:Duplicate keys detected: ‘xxx‘. This may cause an update error

这篇博客讲述了在使用 Vue 进行表格渲染时遇到的错误,具体表现为由于双重循环导致的索引重复问题。错误日志显示在 `el-table` 的 `v-for` 循环中使用了相同的 `key` 值。解决方案是删除 `key` 指令,避免索引重复,从而修复了渲染问题。
摘要由CSDN通过智能技术生成

vue遇到的一个坑



错误日志

在这里插入图片描述


翻译

在这里插入图片描述



错误代码

<el-table border :data="ruleDetailList" style="width: 100%; margin-top:10px" v-if="ruleDetailList.length">
  <el-table-column label="xxx" prop="parkName"></el-table-column>
  <el-table-column label="xxx" prop="channelName"></el-table-column>
  <el-table-column label="xxx" prop="authCycle" width="250px">
    <template slot-scope="scope">
      <div v-if="!scope.row.authCycle || JSON.parse(scope.row.authCycle).length === 0">未选择</div>
      // 因为table本身就会循环,这里又加了循环导致index重复 如:0,1,2,3,0,1,2,3。
      <template v-else v-for="(item, index) in JSON.parse(scope.row.authCycle)">
        <div v-if="item.week.length === 7" :key="index">{{ '每周' + ' ' + item.timeList[0].beginTime + '—' + item.timeList[0].expireTime }}</div>
        <div v-else-if="item.week.length === 0" :key="index">未选择</div>
        <div v-else v-for="(week, index) in item.week" :key="index">{{ '周' + weekName[week] + ' ' + item.timeList[0].beginTime + '—' + item.timeList[0].expireTime }}</div>
      </template>
    </template>
  </el-table-column>
</el-table>



解决

解决方法就是删掉 :key="index"
<el-table border :data="ruleDetailList" style="width: 100%; margin-top:10px" v-if="ruleDetailList.length">
  <el-table-column label="xxx" prop="parkName"></el-table-column>
  <el-table-column label="xxx" prop="channelName"></el-table-column>
  <el-table-column label="xxx" prop="authCycle" width="250px">
    <template slot-scope="scope">
      <div v-if="!scope.row.authCycle || JSON.parse(scope.row.authCycle).length === 0">未选择</div>
      <template v-else v-for="(item, index) in JSON.parse(scope.row.authCycle)">
        <div v-if="item.week.length === 7">{{ '每周' + ' ' + item.timeList[0].beginTime + '—' + item.timeList[0].expireTime }}</div>
        <div v-else-if="item.week.length === 0">未选择</div>
        <div v-else v-for="(week, index) in item.week">{{ '周' + weekName[week] + ' ' + item.timeList[0].beginTime + '—' + item.timeList[0].expireTime }}</div>
      </template>
    </template>
  </el-table-column>
</el-table>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值