J'ai un tableau qui est rendu comme un ensemble de composants Vue en utilisant v-for
. J'ai besoin d'utiliser :key=""
sinon Vue se plaint.Vue de la boucle avec l'index en tant que clé provoque un comportement imprévisible
Mon tableau n'a pas d'identificateurs uniques, donc j'utiliser l'index comme
cléMa boucle
<card v-for="(item, index) in questions" :question="item" :key="index">{{item}}</card>
Le tableau a des objets qui peuvent avoir le même contenu
[{name:"jimmy"}, {name:"billy bob"}, {name:"jimmy"}]
Le problème : dès que je manipule le tableau, les résultats deviennent très imprévisibles. Parfois, les composants sont rendus correctement. Parfois, un nouveau composant apparaît au milieu de la liste v-for
même s'il a été inséré dans le tableau. Parfois, après un shift/pop, tous les anciens composants restent et le nouveau push n'apparaît pas.
code
if(this.questions.length > 4) this.questions.shift()
this.questions.push({name:"willy jim"})
Si j'utilise item.name
comme la clé, il fonctionne parfaitement bien tant qu'il n'y a pas de noms en double. Si j'utilise item.name+index
ou quelque chose si bête, tout ça va Bonkers ...
double possible de [Pourquoi pas toujours utiliser l'index comme la clé dans une vue.js boucle?] (https://stackoverflow.com/questions/44531510/why-not-always-use-the-index-as-the-key-in-a-vue-js-for-loop) –