vue綁定對象,綁定的值不改變的問題

在使用vue結合elmentui的table組件,對數組綁定,需要編輯數組裏一些屬性的值。我的情況是,需要在打開這個表時,根據條件插入一些對象到table裏,經測試,到這裏是沒問題的,可以顯示新插入的對象。問題在於,當我改變這些新插入對象的count字段時,發現輸入數字,輸入框的數字並沒有改變,而在不是新插入的對象上,輸入count字段是沒問題的。然後,當我去更改這個對象的其他值時,這時原來那個有問題的(值不改變)count字段發生了變化。
這裏要說個前提:我新插入的對象是從另一個數組那得來的,
oldArr=[...];//這是原數組;
......//省略代碼
let newItem=oldArr[findIndex];
newItem.count=1;//注意oldArr裏的對象都沒得count字段,oldArr的其他字段在dataTable中是有的
tableData.splice(findIndex,0,newItem);//插入
大概就是這樣。
這時,我猜到,其他字段沒問題,而偏偏這個沒有的count字段有問題,原因可能是因爲newItem插入到tableData中去了,有count字段,但是oldArr[findIndex]裏沒有count;雖然它們指向同一個對象,但說不定有什麼差異(沒研究過),這時oldArr[findIndex]可能也受到vue的綁定了,就是因爲oldArr[findIndex]沒有count屬性所以才綁定有問題。
然後我的解決辦法是:把newItem,deepClone一下,讓它是一個獨立的對象,斬斷和oldArr[findIndex]的聯繫,這時綁定count值就沒問題了。
tableData.splice(findIndex,0,deepClone(newItem));
以上就是這次的分享。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章