昨天遇到一個這樣的場景, 主頁面引用了一個子頁面,子頁面有個Redio選擇,2個選項。
默認的,會從父組件傳遞一個參數給子組件作為默認值,實現默認選中效果,以及用來做反選。
開始沒什么問題,頁面都擺上去了,但是當我點擊進行選擇的時候,console控制器拋出異常了,提示我不能在子組件里修改父組件傳遞過來的值。
網上查證了一番,原因是父組件往子組件傳值默認是單向綁定的,不允許在子組件修改值。
...
網上有些答案, 不過有點坑,最后還是問的公司的前端解決了,做法是這樣的:
在子組件定義watch方法,監聽父組件傳遞的變量的值,然后把值賦值給子組件內部自己定義的變量即可,如圖:
watch里面的事件名稱即父組件傳遞的變量名,參數val是變量的值,具體用法如圖所示。
這樣就很好的解決了子組件會修改父組件值的問題。