VueJS-事件“click”的处理程序无效:未定义
2016-11-20
61239
我有一个元素列表,点击后我想对其进行编辑。 我在其他组件中也有类似的解决方案,它运行得很好,但在新组件中却不行,也找不到原因。
当组件呈现时,我得到:
无效的处理程序“click”事件:未定义
列表:
<div v-for="annt in anns" class="item two-lines" v-if="!anntInEdit">
<div class="item-content has-secondary" v-on:click="edit(annt)">
<div>
{{ annt.title }}
</div>
<div >
{{ annt.body}}
</div>
</div>
<div class="item-secondary">
<a><i >delete</i></a>
</div>
</div>
JS:
edit (annt) {
if (this.anntInEdit == null) {
this.anntInEdit = annt
this.anntInEditBackup = Object.assign({}, this.anntInEdit)
}
this.anntInEditIndex = this.anns.indexOf(annt)
},
当我点击时,我在编辑 snf div 中得到了公告,其中显示了表单,我可以使用保存(ajax)、取消(只需将 inedit 设置为 null)等。但只要我触摸编辑 div 内的任何输入,我就会得到:
[Vue warn]:无效的处理程序“click”事件:未定义
vue.common.js?e881:1559 未捕获(在承诺中)TypeError:无法读取未定义的属性“invoker”
并且一旦我收到错误,编辑中的任何按钮都是根本不起作用。
相同的 div 用于 new/edit,并且对于新公告完全正常工作。 有什么想法吗?
整个组件 pastebin: http://pastebin.com/JvkGdW6H
3个回答
明白了。这与顶级函数
@click
无关。
这与调用顶级点击时渲染的元素的
@click
有关。我的函数名称拼写错误。
不幸的是,Vue 没有显示缺失函数的名称,这就是我找不到它的原因,因为我在错误的地方寻找它……
Marek Urbanowicz
2016-11-21
当将点击函数实现为计算函数时,我遇到了类似的错误。将函数作为方法而不是计算函数移动后,问题得到了解决。这不是答案,只是更新了我的观察。
RaviStrs
2021-02-09
我还遇到了此错误,
“@vue/cli-service”:“^3.9.0”
。
原因是需要功能道具的儿童组成部分,该功能尚未通过。所需的道具正在传递:
729502289
Doug Wilhelm
2020-02-28