Vue.js $emit 事件触发但没有任何反应
Vue.js $emit Event Triggering But Nothing Happens
我正在尝试从 Vue 中的子组件调用 $emit 事件以触发 App.vue 中的函数。根据 Vue 检查器触发事件,DOM 检查器显示 DIV 设置为触发事件,但没有任何反应。
我尝试过重命名事件,确保函数在单击事件上运行,绑定到不同的组件和 div,并且不在事件中包含有效负载。似乎没有任何效果。我已经尝试过 Firefox 和 Chrome 并且都以相同的结果结束:调用事件没有任何反应。
子组件和方法
<div class="navbutton" v-on:click="clicked(data.id)">
<p>{{data.text}}</p>
</div>
clicked(id){
switch(id){
case 1:
alert("One");
break;
case 2:
this.$emit('testemit');
break;
case 3:
alert("Three");
break;
case 4:
alert("Four");
break;
default:
alert("DEFAULT");
break;
}
}
来自App.vue
<div v-on:testemit="EmitFunction"></div>
EmitFunction() {
alert('MESSAGE');
}
我希望在单击第二个按钮时收到提示 'MESSAGE',但是没有任何反应。其他三个按钮(1、3 和 4)工作正常。
您需要实际激活一个发射器并监听父组件,如下所示:
//app.vue
<template>
<my-component v-on:testemit="EmitFunction"/>
</template>
并且您的 'EmitFunction()' 在您的方法中执行您的 'clicked' 正在执行的操作。
methods: {
EmitFunction(id) {
switch... etc
并在您的组件中...
//myComponent.vue
<div class="navbutton" v-on:click="$emit('testemit', id)">
<p>{{data.text}}</p>
</div>
我正在尝试从 Vue 中的子组件调用 $emit 事件以触发 App.vue 中的函数。根据 Vue 检查器触发事件,DOM 检查器显示 DIV 设置为触发事件,但没有任何反应。
我尝试过重命名事件,确保函数在单击事件上运行,绑定到不同的组件和 div,并且不在事件中包含有效负载。似乎没有任何效果。我已经尝试过 Firefox 和 Chrome 并且都以相同的结果结束:调用事件没有任何反应。
子组件和方法
<div class="navbutton" v-on:click="clicked(data.id)">
<p>{{data.text}}</p>
</div>
clicked(id){
switch(id){
case 1:
alert("One");
break;
case 2:
this.$emit('testemit');
break;
case 3:
alert("Three");
break;
case 4:
alert("Four");
break;
default:
alert("DEFAULT");
break;
}
}
来自App.vue
<div v-on:testemit="EmitFunction"></div>
EmitFunction() {
alert('MESSAGE');
}
我希望在单击第二个按钮时收到提示 'MESSAGE',但是没有任何反应。其他三个按钮(1、3 和 4)工作正常。
您需要实际激活一个发射器并监听父组件,如下所示:
//app.vue
<template>
<my-component v-on:testemit="EmitFunction"/>
</template>
并且您的 'EmitFunction()' 在您的方法中执行您的 'clicked' 正在执行的操作。
methods: {
EmitFunction(id) {
switch... etc
并在您的组件中...
//myComponent.vue
<div class="navbutton" v-on:click="$emit('testemit', id)">
<p>{{data.text}}</p>
</div>