开发者问题收集

未捕获的类型错误:emit 不是 vue3 中的函数

2022-02-13
21708

当我在VUE 3设置代码块中编写此代码以获取输入值时,请按照此 答案 ,这是代码的一部分:

860735434

运行时应用程序显示错误: 255560614

我已经定义了emit,为什么仍然告诉我emit不是函数?这是我的VUE3组件的完整代码:

414102711

我想从模板输入中获取用户输入用户名。这些方式表明这种方式不起作用。我该怎么办来解决这个问题?我试图将 @vue/Compiler-sfc 升级到3.2.31,仍然没有解决此问题。

2个回答

defineEmitsdefineProps 仅用于脚本设置,第一个例子应该将 props 定义为选项,而 emit 是设置钩子的第二个参数:

import { defineComponent } from "vue";


export default defineComponent({
   props:{
   modelValue: String
  },
  setup(props,{emit}) {

    function updateValue(value: any) {
      emit('update:modelValue', value)
    }
}

Boussadjra Brahim
2022-02-13

正如你所说 这个表达式不是可调用错误 。尝试这个:

import { defineComponent } from "vue";


export default defineComponent({
   props:{
   modelValue: String
  },
  setup(props,ctx) {

    function updateValue(value: any) {
      ctx.emit('update:modelValue', value)
    }
}
Dolphin
2022-02-13