首页  >  问答  >  正文

替代Vue中的"emit"方法

当我使用“emit”时,Vue 抱怨我正在寻找一个功能相同的替代方案

这将是一个待办事项列表

代码:

<button @click="$emit('delete-todo-event', todo.id)">Button</button>

浏览器控制台中的警告:

runtime-core.esm-bundler.js?5c40:38 [Vue warn]:无关的非发出事件侦听器(deleteTodoEvent)已传递给组件,但无法自动继承,因为组件渲染片段或文本根节点。如果侦听器仅用作组件自定义事件侦听器,请使用“emits”选项声明它。 at <ToDos todoEntries= (9) [代理、代理、代理、代理、代理、代理、代理、代理、代理] onDeleteTodoEvent=fn<bound deleteToDoItem> > at <App>

P粉668019339P粉668019339213 天前306

全部回复(1)我来回复

  • P粉178132828

    P粉1781328282024-03-20 13:18:03

    您似乎正在使用 Vue 3。警告告诉您在组件中使用事件之前没有声明事件。这是一个例子:

    export default {
      name: "YourComponent",
      emits: ["deleteTodoEvent"], // <--- this is what the warning in hinting to
      setup(_,{ emit }) {
        ...
      },
    };

    回复
    0
  • 取消回复