在有些時候,子組件直接修改父組件傳來的 prop 對象的屬性會出現不同步的問題。
比如,父組件傳過來的一個對象 checkBoxObj:
checkBoxObj:{
checked: false
}
將 checked 通過v-model綁定給子組件的 checkbox,然后點擊這個checkbox,試圖改變 checked 的值,但是有時候會發現 checkbox 的選中狀態和 checked 相反,也就是不同步的問題。
(嘗試)解決辦法
將prop的checkBoxObj值賦值給data的一個值checkBoxData,
this.checkBoxData = this.checkBoxObj;
由於是直接賦值,也存在引用關系,修改checkBoxData的checked就相當於修改了checkBoxObj的checked。於是這個bug不在出現。
然后直接修改這個checkBoxData的checked屬性值,不要直接修改prop傳過來的值。
