vue中報(bào)錯(cuò)Duplicate?keys?detected:'1'.?This?may?cause?an?update?error的解決方法
報(bào)錯(cuò)截圖:

報(bào)錯(cuò)原因:
通過上圖的報(bào)錯(cuò)信息我們不難看出,報(bào)錯(cuò)的主要原因出現(xiàn)在 key 值上,報(bào)錯(cuò)的意思大概是檢測到重復(fù)的 key 值,通俗來講就是你的 key 值不是唯一的。
解決方案:
問題的根源找到了,解決起來就會(huì)很簡明扼要了,其實(shí)項(xiàng)目中出現(xiàn)這種報(bào)錯(cuò)多為以下這兩種情況:
第一種情況:
for 循環(huán)的 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: "數(shù)據(jù)1" },
{ idx: "0", name: "數(shù)據(jù)2" },
{ idx: "1", name: "數(shù)據(jù)3" },
],
};
},
};
</script>
第二種情況:
頁面上有兩個(gè) for 循環(huán)同一個(gè)數(shù)組,導(dǎo)致 key 重復(fù)。
<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: "數(shù)據(jù)1" },
{ idx: "1", name: "數(shù)據(jù)2" },
{ idx: "2", name: "數(shù)據(jù)3" },
],
};
},
};
</script>
以上即為兩種常見的引起報(bào)錯(cuò)的情況,下面教你如何解決這個(gè)問題。
<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: "數(shù)據(jù)1" },
{ idx: "0", name: "數(shù)據(jù)2" },
{ idx: "1", name: "數(shù)據(jù)3" },
],
};
},
};
</script>
第一種情況我們可以直接將 key 值指定為 for 循環(huán)的 index 值,這樣即可解決 key 重復(fù)的問題。
<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: "數(shù)據(jù)1" },
{ idx: "1", name: "數(shù)據(jù)2" },
{ idx: "2", name: "數(shù)據(jù)3" },
],
};
},
};
</script>
第二種情況可以看到我們將第一個(gè) for 循環(huán)中的 key 值拼接了一個(gè)數(shù)字,這樣兩個(gè) for 循環(huán)中的 key 值都具有唯一性,故不會(huì)報(bào)錯(cuò)。其實(shí)不只是數(shù)字,字符串或者其它的標(biāo)記都可以區(qū)別 key 值得唯一性,感興趣的同學(xué)可以下去試一試。
總結(jié)
到此這篇關(guān)于vue中報(bào)錯(cuò)Duplicate keys detected:‘1‘. This may cause an update error解決的文章就介紹到這了,更多相關(guān)vue報(bào)錯(cuò)Duplicate keys detected內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VUE3+Element-plus中el-form的使用示例代碼
這篇文章主要介紹了VUE3+Element-plus中el-form的使用示例代碼,本文通過圖文示例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
vue實(shí)現(xiàn)數(shù)據(jù)控制視圖的原理解析
這篇文章主要介紹了vue如何實(shí)現(xiàn)的數(shù)據(jù)控制視圖的相關(guān)知識,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
移動(dòng)端底部導(dǎo)航固定配合vue-router實(shí)現(xiàn)組件切換功能
經(jīng)常遇到這樣的需求,移動(dòng)端中的導(dǎo)航并不是在頂部也不是在底部,而是在最底部且是固定的,當(dāng)我們點(diǎn)擊該導(dǎo)航項(xiàng)時(shí)會(huì)切換到對應(yīng)的組件。這篇文章主要介紹了移動(dòng)端底部導(dǎo)航固定配合vue-router實(shí)現(xiàn)組件切換功能,需要的朋友可以參考下2019-06-06
vue+scss+element-ui實(shí)現(xiàn)表格表頭斜杠一分為三方式
這篇文章主要介紹了vue+scss+element-ui實(shí)現(xiàn)表格表頭斜杠一分為三方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

