无法绑定 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