我有Vue組件,它接收來自道具的json數據,之後這個渲染子組件使用v-for
並將這些數據作爲道具傳遞。一切工作正常,直到我試圖從列表中刪除一個項目,當我刪除它,它不正確地刪除元素。在vue devtools中,我看到父母正確接收數據,但沒有正確呈現它。誰能幫我? 這裏是我的代碼:https://gist.github.com/giokaxo/3d291b9b7b8ef97f81dc83799c430302父狀態改變後Vue組件沒有更新
0
A
回答
1
使用 「鑰匙」 屬性渲染元素使用V-的,例如當:
<p v-for="(product, index) in order.products" :key="i">..</p>
1
相關文檔here:
您可以直接使用
v-for
在自定義組件上,就像任何正常的 元素:<my-component v-for="item in items" :key="item.id"></my-component>
在2.2.0+版本中,如果將
v-for
與某個組件一起使用,現在需要key
。然而,這並不會自動 任何數據傳遞到組件,因爲組件已經分離出自己的 範圍。爲了迭代數據傳遞到 組成部分,我們也應該使用道具:
<my-component v-for="(item, index) in items" v-bind:item="item" v-bind:index="index" v-bind:key="item.id"> </my-component>
原因不能自動注入項目到組件是因爲使組件 緊耦合如何
v-for
作品。明確其數據來源於何處,可以使組件在其他情況下可重用。
而且here:
當Vue公司是更新由 默認與
v-for
渲染,它的元素列表採用了「就地補丁」的策略。如果數據 項目的順序發生了變化,Vue將簡單地修補每個元素,並確保它反映應該在該特定的 索引處呈現的內容,而不是移動DOM元素以匹配項目的 順序。
...
爲了給Vue的一個提示,以便它可以跟蹤每個節點的身份,從而 重用和重新排序現有的元素,你需要爲每個項目的唯一關鍵 屬性。對於關鍵的理想值將是每個項目的唯一編號 。
相關問題
- 1. Reactjs - 在子組件更新狀態時,父componend狀態改變
- 2. 在父狀態改變後反應子組件未更新
- 3. 子組件更改父組件狀態
- 4. 當孩子(第三方)組件狀態改變時如何更新父組件
- 5. Redux子不更新父組件狀態
- 6. Vue組件沒有正確更新
- 7. React-Redux connect()不更新組件,即使當狀態改變時沒有突變
- 8. React Native NavigatorIOS子組件在父狀態更改時不更新
- 9. 狀態改變後更新div渲染
- 10. 更改父組件中父狀態的狀態,然後將該狀態作爲屬性傳遞並更改子組件中的狀態
- 11. Vue公司和Vuex:更新基於改變狀態的視圖
- 12. ReactJS組件textarea沒有更新狀態變化
- 13. 如何在Vuex存儲狀態更改時更新Vue組件屬性?
- 14. 調用函數來改變父組件中父狀態的狀態
- 15. Redux在深度不可變狀態屬性更新時沒有更新組件
- 16. 如何更改子組件的父組件的狀態?
- 17. setState沒有更新狀態
- 18. 反應this.setState沒有更新數組狀態變量
- 19. React組件在狀態更改後不重新渲染
- 20. React js改變狀態不更新組件
- 21. 從小孩修改父組件狀態
- 22. 當孩子/父母更改狀態時更新父級
- 23. ReactJS - 當子狀態發生變化時更新父狀態
- 24. 更新父母表狀態
- 25. 當狀態沒有改變時React rerender組件?
- 26. 如何更新小部件只有當WiFi狀態改變?
- 27. react.js在更改狀態數組之後不更新DOM
- 28. 在AngularJS中加載沒有刷新父狀態的子狀態
- 29. 在根狀態改變後重新安裝所有反應的子組件
- 30. 孫子組件不改變祖父母狀態
它的工作謝謝你們倆 –