我有一個數據數組的vue.js子組件調用messages
。在數組中插入新元素時如何更新DOM。如何在數據數組插入新元素時更新子組件?
這裏是我的代碼的簡化片斷:使用VUE devtools我可以看到的消息陣列更新
<template>
<q-item v-for="(msg, i) in messages" :key="i" >
<!-- q-item is a custom component of quasar framework -->
<!-- some code here related to msg -->
</q-item>
<template/>
<script>
export default {
data() {
return {
messages: []
}
},
methods: {
submitMessage() {
// submit the formData
this.submitFormData({url: '/messages/new', formData})
.then((message) => {
this.messages.push(message)
})
},
}
}
}
<script/>
,但我不能GE的DOM根據其更新。
注,這是一個子組件,而不是VUE實例($ forceUpdate不工作)
哪裏模板代碼? – Mjh
你可以添加完整的組件代碼嗎?我認爲在你的代碼中還有另一個問題,因爲如果數據發生變化,Vuejs會自動重新渲染組件 – imcvampire
嘗試在將新消息推送到此數組後添加'console.log(this.messages)'。它應該包含新添加的消息。問題可能出現在這裏的代碼的不同部分。 – Edwardo