Mar*_*sen 5 javascript components emit vue.js
我无法弄清楚为什么我无法在父组件中监听子组件的更改。
我有一个自定义<v-address></v-address>组件,其中包含多个输入字段,供用户输入地址,如下所示:
<v-text-field
v-model="address.address_line_1"
label="Street Address"
required
@change="inputChanged">
</v-text-field>
Run Code Online (Sandbox Code Playgroud)
在下面我聆听变化:
import { mapGetters, mapActions } from 'vuex';
export default {
data() {
return {
address: {
address_line_1: '',
address_line_2: '',
city: '',
province: '',
postal_code: ''
}
}
},
computed: {
...mapGetters([
'getProvinces',
]),
},
methods: {
inputChanged() {
this.$emit('address:change', this.address);
}
}
}
Run Code Online (Sandbox Code Playgroud)
每次更改输入字段时,我都想将整个地址对象发送到父组件。
当我console.log(this.address)进入该inputChanged()方法时,我得到了包含所有可用值的正确对象。
我现在想像这样发出对象: this.$emit('address:change', this.address);
在我的父组件中,我监听<v-address @address:change="changeAddress"></v-address>组件中的更改。
然后,在我的父组件中,我尝试输出这些更改:
methods: {
...mapActions([
'setE6',
]),
changeAddress(value, event) {
console.log(value);
}
}
Run Code Online (Sandbox Code Playgroud)
当我查看控制台时,我完全没有得到任何输出。即使在该函数中对字符串进行硬编码也不会返回任何内容。
我究竟做错了什么?
| 归档时间: |
|
| 查看次数: |
10290 次 |
| 最近记录: |