Vue“发出”替代方案

FBa*_*tle 0 events vue.js vue-events

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

\n

这将是一个待办事项列表

\n

代码:\n

\r\n
\r\n
<button @click="$emit(\'delete-todo-event\', todo.id)">Button</button>
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

浏览器控制台中的警告:

\n
\n

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

\n
\n

pue*_*elo 5

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

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