返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue中报错Duplicate keys detected:'1'. This may cause an update error的解决方法
  • 944
分享到

vue中报错Duplicate keys detected:'1'. This may cause an update error的解决方法

duplicate keys detectedvue报错duplicate keys detected 2023-03-23 11:03:01 944人浏览 安东尼
摘要

目录报错截图:报错原因:解决方案:总结报错截图: 报错原因: 通过上图的报错信息我们不难看出,报错的主要原因出现在 key 值上,报错的意思大概是检测到重复的 key 值,通俗来讲

报错截图:

报错原因:

通过上图的报错信息我们不难看出,报错的主要原因出现在 key 值上,报错的意思大概是检测到重复的 key 值,通俗来讲就是你的 key 值不是唯一的。

解决方案:

问题的根源找到了,解决起来就会很简明扼要了,其实项目中出现这种报错多为以下这两种情况:

第一种情况:

for 循环的 key 值不为唯一性。

<template>
  <div>
    <div v-for="(item,index) in listData" :key="item.idx">{{item.name}}</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      listData: [
        { idx: "0", name: "数据1" },
        { idx: "0", name: "数据2" },
        { idx: "1", name: "数据3" },
      ],
    };
  },
};
</script>

第二种情况:

页面上有两个 for 循环同一个数组,导致 key 重复。

<template>
  <div>
    <div v-for="(item,index) in listData" :key="item.idx">{{item.name}}</div>
    <div v-for="(item,index) in listData" :key="item.idx">{{item.name}}</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      listData: [
        { idx: "0", name: "数据1" },
        { idx: "1", name: "数据2" },
        { idx: "2", name: "数据3" },
      ],
    };
  },
};
</script>

以上即为两种常见的引起报错的情况,下面教你如何解决这个问题。

<template>
  <div>
    <div v-for="(item,index) in listData" :key="index">{{item.name}}</div>
  </div>
</template>

<script>  
export default {
  data() {
    return {
      listData: [
        { idx: "0", name: "数据1" },
        { idx: "0", name: "数据2" },
        { idx: "1", name: "数据3" },
      ],
    };
  },
};
</script>

第一种情况我们可以直接将 key 值指定为 for 循环的 index 值,这样即可解决 key 重复的问题。

<template>
  <div>
    <div v-for="(item,index) in listData" :key="item.idx + 1">{{item.name}}</div>
    <div v-for="(item,index) in listData" :key="item.idx">{{item.name}}</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      listData: [
        { idx: "0", name: "数据1" },
        { idx: "1", name: "数据2" },
        { idx: "2", name: "数据3" },
      ],
    };
  },
};
</script>

第二种情况可以看到我们将第一个 for 循环中的 key 值拼接了一个数字,这样两个 for 循环中的 key 值都具有唯一性,故不会报错。其实不只是数字,字符串或者其它的标记都可以区别 key 值得唯一性,感兴趣的同学可以下去试一试。

总结

到此这篇关于Vue中报错Duplicate keys detected:‘1‘. This may cause an update error解决的文章就介绍到这了,更多相关vue报错Duplicate keys detected内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue中报错Duplicate keys detected:'1'. This may cause an update error的解决方法

本文链接: https://lsjlt.com/news/201020.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作