首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从子组件vue3.0接收事件

无法从子组件vue3.0接收事件
EN

Stack Overflow用户
提问于 2022-05-23 06:20:26
回答 1查看 217关注 0票数 1

我有一个按钮组件,它是子组件。

代码语言:javascript
复制
<template>
  <div class="button-container">
    <el-button @click="$emit('onClick')" type="primary">{{ text }}</el-button>
  </div>
</template>

我希望发出单击事件,以便父组件接收。

以下是父组件

代码语言:javascript
复制
<script>
import Button from "@/components/Button.vue"; 

export default { 
  components: { Button } ,
  methods: {
    toRegister() { this.$router.push('/register'); }
  }
}
</script>
代码语言:javascript
复制
<template>
   <Button @on-click="toRegister" text="Register here" textColor="#5fb878" textSize="8px"></Button>
</template>

但我没有从这里收到任何东西。

我认为问题在事件名称上,但在我将名称从onClick更改为clicked之后,仍然存在相同的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-23 06:48:24

尝试将自定义组件从Button重命名为其他组件:

代码语言:javascript
复制
const { ref } = Vue

const app = Vue.createApp({
  methods: {
    toRegister() { 
    console.log('clicked')
    //this.$router.push('/register'); 
    }
  }
})

app.component('btn', {
  template: `
    <div class="button-container">
      <button @click="$emit('onClick')" type="primary">text</button>
    </div>
  `
})

app.mount('#demo')
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js"></script>
<div id="demo">
   <btn @on-click="toRegister" text="Register here" textColor="#5fb878" textSize="8px"></btn>
</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72344029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档