【前端】vue2中的报错:Duplicate keys detected: '0'

前言

     小编在vue前端项目中,遇到了一个错误,解决思路主要集中在v-for的用法上面,key的值不能重复,所以它的取值非常重要,循环嵌套时也需要注意一下。

报错详细内容  

 一、报错图1

原因:v-for取用key值时,key值重复:

   <Select v-model="questionDetail.company" style="width:200px">
            <Option
              v-for="item in companyList"
              :value="item.name"
              :key="item.name"
            >{{ item.name }}</Option>
          </Select>

修改为:key值为索引值

 <Select v-model="questionDetail.company" style="width:200px">
            <Option
              v-for="(item,index) in companyList"
              :value="item.name"
              :key="index"
            >{{ item.name }}</Option>
          </Select>

 

二、报错图2

此原因循环内容重复,itemSecond集合使用了两次。

  <div v-for="(itemSecond,index) in item.listKid" :key="index">
                <MenuItem
                  :name="itemSecond.applicationName" v-if="itemSecond.listKid === null">
                  {{itemSecond.applicationName}}
                </MenuItem>
              </div>
              <div v-for="(itemSecond,index) in item.listKid" :key="index">
                <Submenu :name="itemSecond.applicationName" v-if="itemSecond.listKid !== null">
                  <template slot="title">{{itemSecond.applicationName}}</template>
                  <MenuItem
                    :name="itemThird.applicationName" v-for="(itemThird,index3) in itemSecondNotNull.listKid" :key="index3"
                  >{{itemThird.applicationName}}
                  </MenuItem>
                </Submenu>
              </div>

 改为如下:

  对于itemSecond集合调用了两次循环,其实调用一次即可,如下,加入v-if判断。

  <div v-for="(itemSecond,index) in item.listKid" :key="index">
                <MenuItem
                  :name="itemSecond.applicationName"
                  v-if="itemSecond.listKid === null"
                >{{itemSecond.applicationName}}
                </MenuItem>
                <Submenu
                  :name="itemSecond.applicationName"
                  v-if="itemSecond.listKid !== null"
                >
                  <template slot="title">{{itemSecond.applicationName}}</template>
                  <MenuItem
                    :name="itemThird.applicationName"
                    v-for="(itemThird,index3) in itemSecond.listKid"
                    :key="index3"
                  >{{itemThird.applicationName}}</MenuItem>
                </Submenu>
   </div>

小结

    通过实践,网上查询解决方案,寻求帮助后,这个问题得到了解决。

                                                                           感谢您的访问!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值