鍍金池/ 問答/HTML/ Vue使用v-for動(dòng)態(tài)增加減少的組件,數(shù)組中插入(splice)一個(gè)對象后,組

Vue使用v-for動(dòng)態(tài)增加減少的組件,數(shù)組中插入(splice)一個(gè)對象后,組件中的data都沒有刷新怎么辦?

上類似代碼

// 父組件
<template>
    <childComponents v-for="item in items" :items="items" ref="childs"></childComponents>
    <button @click="addCom"></button>
</template>
<script>
    export default {
        data() {
            return {
                items: [{},{}]
            }
        },
        methods: {
            addCom() {
                this.items.splice(1,0,{})
                this.$nextTick(()=>{
                    this.$refs.childs.forEach((v)=>{
                        console.log(v.something)
                        // first, second, second
                    })
                })
            }
        }
    }
</script>

// 子組件
<template>
    <input v-model="something"></input>
</template>
<script>
    export default {
        data() {
            return {
                something: x //假設(shè)第一個(gè)輸入了first,第二個(gè)輸入了second,新增的第三個(gè)應(yīng)該是默認(rèn)的x
            }
        }
    }
</script>

在第一二個(gè)子組件輸入框輸入完,點(diǎn)擊button后,確實(shí)會(huì)在第二行增加一個(gè)子組件,但是子組件中的data不對,按照正確的格式,此時(shí)的子組件data的something應(yīng)該依次是first,x,second,可是實(shí)際情況卻是first,second,second,這種情況我該怎么辦。。謝謝各位了

回答
編輯回答
維他命

key綁定v-for對象本身會(huì)編譯報(bào)錯(cuò),我后來綁定了item._ob_.dep.id,就解決了所有問題

2018年5月25日 03:55
編輯回答
硬扛

沒復(fù)現(xiàn)出來這種情況啊。再說你加的是兩個(gè){a:3, b:3}。
那么子組件拿到的props:['items']不應(yīng)該是 1,3,3,2

2017年11月22日 21:15