【Vue.js】[Vue warn]: Error in v-on handler: "TypeError: handler.apply is not a function
소개
Vue.js 및 Vuetify를 사용하여 SPA 애플리케이션을 만드는 동안 다음 오류가 발생했습니다.
[Vue warn]: Error in v-on handler: "TypeError: handler.apply is not a function
여기를 해결하겠습니다.
환경
OS: macOS Catalina 10.15.1
Vue: 2.6.10
vuetify: 2.1.0
무엇을 하고 싶었는가
v-for
에서 v-list
를 목록 렌더링하고 각 항목에 대해 다음 두 점을 동적으로 변경하고 싶습니다.router-link
목적지v-on
지시어로 발화하는 이벤트이 2가 잘못되었고 브라우저 콘솔에 제목에있는 오류가 발생했습니다.
우선은 원래의 코드를 나타냅니다.
원래 코드
Sample.vue
<template>
<!-- 略 -->
<v-list>
<v-list-item
v-for="item in items"
:key="item.id"
@click="item.action"
>
<router-link :to="{ name: item.link }">
<v-list-item-title>
{{ item.name }}
</v-list-item-title>
</router-link>
</v-list-item>
</v-list>
<!-- 略 -->
</template>
<script>
export default {
data() {
return {
items: [
{id: 1, name: '1へのリンク', link: 'Component1', action: ''},
{id: 2, name: '2へのリンク', link: 'Component2', action: ''},
{id: 3, name: 'action1を実行', link: '', action: 'action1'},
{id: 4, name: 'action2を実行', link: '', action: 'action2'},
]
}
},
methods: {
action1() {
anyAction1()
},
action2() {
anyAction2()
}
}
}
</script>
이제
router-link
는 동적으로 변경되었지만 methods
에 정의 된 action1
및 action2
가 발화되지 않았습니다.다음에 해결한 코드를 나타냅니다.
해결된 코드(변경부 주변만 발췌)
Sample.vue
<template>
<!-- 略 -->
<v-list-item
v-for="item in items"
:key="item.id"
@click="triggerClick(item.action)"
>
<!-- 略 -->
</template>
<script>
export default {
// 略
methods: {
triggerClick(action) {
if (action === action1) {
anyAction1()
} else if (action === action2) {
anyAction2()
}
}
}
</script>
개선된 포인트
v-list-item
의 @click="triggerClick(item.action)"
및 동적 인수 전달 methods
내에서 동적 인수에 따라 발화하는 이벤트의 내용을 변경했습니다 결론
끝까지 읽어 주셔서 감사합니다
누군가의 도움이 되길 바랍니다
참고로 한 사이트 (항상 감사합니다)
Reference
이 문제에 관하여(【Vue.js】[Vue warn]: Error in v-on handler: "TypeError: handler.apply is not a function), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/terufumi1122/items/5254f69956be600b6af4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)