您好,登錄后才能下訂單哦!
問題描述,在vue的for循環中使用了指令,然后對數據進行篩選的時候,發現指令沒有起作用。
如圖前面的圖標是根據文件名的后綴名,返回響應圖標的,通過指令實現的。然后我們在搜索框中刪選以后,數據更新了,但是圖標沒有更新
分析原因
<div v-for="(item, index) in myDate" :key='index'> ... </div>
問題就出在了:key='index'因為vue中for循環是根據key的值的變化來更新vnode的,很顯然我們經過篩選如果刪選出三條數據,那么index = 0, 1, 2沒有變化,所以vnode沒有更新
解決辦法1:我們設置:key的時候最好使用每條數據的id這樣就是唯一的,每次篩選,vnode都會更新。
解決辦法2:在指令中設置
// 添加bind設置 bind: function (el, binding, vnode) { // bind中的vnode里面的key可以給設置一個隨機數,這樣每次都會更新虛擬節點。 let num = parseInt(Math.random() * 10) vnode.key = num }, inserted: ...
總結
以上所述是小編給大家介紹的vue列表數據發生變化指令沒有更新問題及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。