Avoid mutating a prop directly since the value will be overwritten whenever the parent component re


子組件修改父組件的值踩坑

Vue1.0升級至2.0之后,直接在子組件修改父組件的值是會報錯的 目的是為了阻止子組件影響父組件的數據。

我們都知道在vue中,父組件傳入子組件的變量是存放在props屬性中的,所有的 prop 都使得其父子 prop 之間形成了一個單向下行綁定:父級 prop 的更新會向下流動到子組件中,但是反過來則不行。(父組件更新,子組件中的prop值也會更新,但子組件不能修改由父組件傳遞過來的值)。

報錯警告:Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated:

解決辦法:我們在調用父給子的變量的時候是跟data里面的變量一樣的,都是通過this.變量來調用,這個問題就是說從父組件傳入子組件的變量是不能this.變量直接改變的,要在data或者computed屬性里面重新定義一個變量,改變data或者computed屬性里面的變量就不會報錯了。


定義一個本地的stepCodeParent 屬性並將這個 prop 用作其初始值,同步對組件的修改,再通知父組件更新



總結:props只能單向傳遞,如果子組件要更改父組件的數據,需要上述流程進行更改!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM