【发布时间】:2021-04-22 03:21:30
【问题描述】:
我正在尝试使用事件将数据从子组件传递到父组件,但我无法捕获它。该事件在子组件函数上触发,但不会在父组件函数上捕获。
有人能弄清楚为什么没有调用 callbackMethod 吗?
我已经尝试过使用 kebab-case 的其他名称,尝试不使用自定义数据/参数,尝试在模板标签上捕获事件,尝试将子组件包装到 div 中,尝试删除括号v-on 声明...
子组件:
HTML
<v-btn
color="primary"
icon
small
elevation="1"
@click="openSettings"
>
<v-icon>
mdi-dots-vertical
</v-icon>
</v-btn>
JavaScript
export default {
name: "ChildComponent",
components: {
OtherChild
},
props: {
my_prop: Object
},
methods: {
openSettings: function () {
// always use kebab-case for event names!
// (https://vuejs.org/v2/guide/components-custom-events.html)
this.$emit("open-child-settings", this.my_prop)
console.log("event")
}
}
父组件:
HTML
<v-container>
<ChildComponent @open-child-settings="callbackMethod($event)"/>
</v-container>
JavaScript
export default {
name: 'ParentComponent',
components: {
ChildComponent,
OtherChildComponent
},
methods: {
callbackMethod: function (my_prop){
this.settingsDialog = true;
this.tempProp = my_prop;
console.log("callback")
}
}
依赖关系
"dependencies": {
"core-js": "^3.6.5",
"dotenv": "^8.2.0",
"vue": "^2.6.11",
"vuetify": "^2.2.11"
}
编辑: 在沙盒上添加了代码,以便您可以看到整个全景图和 Vue.js 扩展的一些快照:
【问题讨论】:
标签: javascript vue.js vuejs2 vue-component vuetify.js