Ekors
(Cristi)
aprilie 3, 2020, 7:38am
1
Tot primesc un “vue warn” de care nu pot sa scap, codul functioneaza bine, dar ma deranjeaza sa-l tot vad prin log.
Eroare: <transition-group> children must be keyed: <ElTag>
Are legatura cu acest FOR:
<el-option v-for="item in data.accounts"
:key="item.index" :label="item.name" :value="item">
<span style="float: left">{{ item.name }}</span>
</el-option>
Problema ar fi din “mounted”, daca scot aceasta parte de cod din “mounted” nu mai primesc avertizarea, dar nici codul nu mai salveaza datele corect dupa.
if(!this.data.accounts.lenght > 0){
this.data.accounts.push({
'id' : null,
'name' : '',
})
}
Ekors:
‘id’ : null,
'id' : null,
:key="item.index"
de unde scoti index? si s-ar putea ca nici acel null sa nu ii placa.
navaru
(Eugen)
aprilie 3, 2020, 9:24am
3
v-for="(item, index) in list"
<- try this
<el-option v-for="(item, index) in data.accounts" :key="index" :label="item.name" :value="item">
1 Like
Aysun
(Aysun)
aprilie 3, 2020, 9:34am
4
Ekors:
lenght
Poate e de la asta. Corect e length.
Ekors
(Cristi)
aprilie 3, 2020, 10:14am
5
Nu functioneaza nimic, la fel e… Am incercat toate cele 3 variante.
Cum arata componenta <el-option />
? Presupun ca acolo ai transition group. Cred ca trebuie sa adaugi key la acel span. Si e mai bine sa pui id-ul ca si key, nu indexul: https://vuejs.org/v2/guide/list.html#Maintaining-State
Desi este pt React, posibil sa fie un rationament asemanator
Publicat la https://blogs.devforum.ro/learning-react-atributul-key/
Mă tot gândeam: cum ar fi să scriu câte un articol despre lucrurile de care m-am lovit învățând React? Prin urmare, ăsta este primul post. Dacă or mai veni altele sau nu… vedem. Atunci când randezi un element într-un loop (map, forEach), este recomandat să îi adaugi acelui element un atribut numit key. Acesta nu…
Ekors
(Cristi)
aprilie 3, 2020, 12:14pm
8
Am pus key la span, degeaba.
“transition-group” nu am in fisierul “.vue”.
Incearca asa, pe key cu id:
<el-option v-for="item in data.accounts"
:key="item.id" :label="item.name" :value="item">
<span style="float: left">{{ item.name }}</span>
</el-option>
Si in mounted, la id sa dai -1 si sa corectezi lenght in length:
if(!this.data.accounts.length > 0){
this.data.accounts.push({
'id' : -1,
'name' : '',
})
}
Daca nu merge, fa un exemplu pe codepen unde se poate reproduce bug-ul. Altfel nu prea imi dau seama ce nu ar merge.
Alta problema ar putea fi daca mai ai alte elemente langa <el-option />
care nu au key, ca aici: https://github.com/SortableJS/Vue.Draggable/issues/144#issuecomment-574677078
Ekors
(Cristi)
aprilie 3, 2020, 5:16pm
10
Tot nu functioneaza… ciudat dupa cum am spus, daca scot “this.data.accounts.push { .etc. }” functioneaza insa nu se mai actualizeaza baza de date cu noile informatii…
îți lipsește proprietatea index.
corect in for trebuie sa ai (item, index)
trebuie sa faci key mai unica, nu doar o cifra banala. Încearcă ceva de genul:
:key=“‘item-element-key-‘ + index”
asta ar face cheia unică.
dacă mai ai undeva pe pagina acelasi loop cu aceleași key, nu o să mearga bine.
Ekors
(Cristi)
aprilie 5, 2020, 8:03am
14
<transition-group> children must be keyed: <ElTag>
navaru
(Eugen)
aprilie 5, 2020, 12:09pm
15
Fa un paste la tot codul incepand cu <transition-group>
, am impresia ca nu ne uitam unde trebuie.
Eu nu văd in codul afișat nici un transition-group.
Ne uitam unde nu trebuie.
Ekors
(Cristi)
aprilie 5, 2020, 3:49pm
17
“transition-group” nu am nicaieri prin visierele “.vue”, sau cel putin nu am gasit eu.