开发者问题收集

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