亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Bootstrap Vue 中將模態數據發送給父級?

如何在 Bootstrap Vue 中將模態數據發送給父級?

開心每一天1111 2023-11-11 21:00:44
我是 Vue 和 Bootstrap Vue 的新手。我構建了一個使用 API 數據數組的表。<b-modal>該表有一個在子組件中打開的按鈕。該模式具有三個字段,通過單擊按鈕將數據附加到表的數組中。然后該表會更新。到這里為止就好了。問題是:當我嘗試從 推送更多信息時<b-modal>,我之前從 添加的信息<b-modal>在數組和表中都被修改。從API帶來的信息沒有被修改。怎么了?多謝。Vue.component('modal', {    props:['commodity_data'],    template:/*html*/`        <div>                        <b-modal id="addModal" ref="modal" hide-footer title="Add Commodity">                <b-form-group>                    <label>                    Hu Count                        <b-form-input                            id="hu_count"                            v-model="new_row.hu_count"                            >                        </b-form-input>                    </label>                    <label>                    Dimensions                        <b-form-input                            id="dimensions"                            v-model="new_row.dimensions"                            >                        </b-form-input>                    </label>                    <label>                    Weight                        <b-form-input                            id="weight"                            v-model="new_row.weight"                            >                        </b-form-input>                    </label>                </b-form-group>            <b-button variant="success" @click="addRow">Add Row</b-button>         </b-modal>        </div>    `,    data(){        return{            new_row:            {                dimensions: '',                hu_count: '',                weight: '',            }        }    },    methods:{        addRow: function () {                        this.commodity_data.push(this.new_row)            this.$refs.modal.hide()            console.log(this.commodity_data);        }    }})
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

有兩個問題:1)我們永遠不應該修改子組件中的 props,2)添加數據時,每次都添加子數據的相同引用。

固定孩子

不是修改 prop,而是$emit使用克隆子數據的事件:

addRow() {

? ?this.$emit('add', { ...this.new_row });??

? ?this.$refs.modal.hide()

}

擴展運算符創建淺表副本。

修復父級

現在,孩子發出了一個父母應該監聽的事件。在子標簽上創建監聽器:

<modal?id="addModal"?@add="addData"?:commodity_data="commodity_data"></modal>

并創建處理程序方法(在父級中):

addData(data)?{?
??this.commodity_data.push(data);
}


查看完整回答
反對 回復 2023-11-11
  • 1 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號