无法绑定 v-on:单击 Vuetify [Vue 警告]:v-on 处理程序中的错误:“TypeError:handler.apply 不是函数”

Posted

技术标签:

【中文标题】无法绑定 v-on:单击 Vuetify [Vue 警告]:v-on 处理程序中的错误:“TypeError:handler.apply 不是函数”【英文标题】:Can't bind v-on:click on Vuetify [Vue warn]: Error in v-on handler: "TypeError: handler.apply is not a function" 【发布时间】:2019-11-12 21:43:52 【问题描述】:

我正在尝试在动态生成的子标题 v-list-tile Vuetify https://vuetifyjs.com/en/components/subheaders 上绑定单击事件,但每次单击该选项时都会出现错误。

vue.js:634 [Vue warn]: Error in v-on handler: "TypeError: handler.apply is not a function"

found in

---> <VListTile>
       <VList>
         <VCard>
           <VApp>
             <Root>

我尝试强制添加方法(不传递对象)并且它有效。它只是在传递给对象并动态呈现时触发。

这是我遇到的错误的Codepen。

我期望的是触发被调用的方法而不触发错误

【问题讨论】:

您的代码存在一些问题 - methods 在您的数据中,而它应该是***的;通过调用click: 'triggerClick(1)',您刚刚将其声明为字符串而不是函数(这会引发您提到的错误)-需要将其更改为click: this.triggerClick(1)才能编译,但它不会做你想做的事。请将您的代码编辑到您的问题本身中,因为外部链接不是永久性的,如果链接更改/失效,可能会变得毫无价值。 @JamesWhiteley 我现在明白了。谢谢。 【参考方案1】:

我的方法在 Data 对象中。它们应该处于同一级别。

在Codepen example中取出数据对象的函数名,只留下数字id

通过在@click 事件上调用函数并在其中传递数字使该方法起作用。

【讨论】:

【参考方案2】:

这发生在我身上,因为我在 html 标签上编写了类似的代码:

@something="colorList"

colorList 是一个 javascript 对象数组。相反,您必须编写一个将值传递给的函数,并在函数内部设置值:

<... @something="updateColorList" ...>

methods

updateColorList(newColorParameter): 
    this.colorList = newColorParameter

【讨论】:

以上是关于无法绑定 v-on:单击 Vuetify [Vue 警告]:v-on 处理程序中的错误:“TypeError:handler.apply 不是函数”的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jest 进行测试时无法执行单击 Vuetify vSwitch

Vue学习之路8-v-on指令学习简单事件绑定之属性

V-On: 绑定事件监听属性

如何在 Vuetify 组件中使用 Vue v-model 绑定以及计算属性和 Vuex?

Vue指令之v-on的缩写和事件修饰符

Vue指令之v-on的缩写和事件修饰符