Vue 子元件更新父元件的值
阿新 • • 發佈:2022-02-15
今天在使用Vue中遇到了一個新的需求:子元件需要修改由父元件傳遞過來的值,由於子元件的值是由父元件傳遞過來的,不能直接修改屬性的值, 我們想改變傳遞過來的值只能通過自定義事件的形式修改父元件的值達到修改子元件值的目的。
在此處做個記錄,防止以後踩坑!
子元件程式碼:
childrenCallback(list){
//通過$emit呼叫父元件定義的on-change-Result方法,將需要改變的值傳遞到父元件
this.$emit('on-change-Result', $this.importResult) }
父元件程式碼:
<el-formmethods:定義changeResultItems方法接收傳遞過來的值,然後賦值給父元件傳過去的值達到更新子元件的值的目的v-show="steps.active===2" :model="value" ref="safeinfo" :rules="rules" label-width="180px"> <safeproduction @on-change-Result="changeResultItems" :safeDatas="value.safeProductionItems" ref="safeproductiontable"></safeproduction> </el-form>
changeResultItems (val){
this.value.safeProductionItems=val;
console.log("子元件傳過來的值",val)
}
對應關係: