前提・実現したいこと
v-forの繰り返し処理で、@clickで使用するメソッドを使用したいです。
発生している問題・エラーメッセージ
handler.apply is not a function
該当のソースコード
template
1 <v-row v-for="(todo,index) in todos" :key="index"> 2 <v-text-field 3 filled 4 readonly 5 :value="todo.text" 6 class="ma-3" 7 auto-grow 8 /> 9 <v-menu 10 top 11 rounded 12 > 13 <template #activator="{ on, attrs }"> 14 <v-btn 15 v-bind="attrs" 16 icon 17 class="mt-6" 18 v-on="on" 19 > 20 <v-icon> 21 mdi-dots-vertical 22 </v-icon> 23 </v-btn> 24 </template> 25 <v-list> 26 <v-list-item 27 v-for="(item, index) in items" 28 :key="index" 29 link 30 > 31 <v-list-item-title @click="item.event">//ここにクリックイベントを付与したい 32 <v-icon>{{ item.icon }}</v-icon> 33 {{ item.title }} 34 </v-list-item-title> 35 </v-list-item> 36 </v-list> 37 </v-menu> 38 </v-row>
script
1export default { 2 data () { 3 return { 4 hidden: false, 5 itemText: '', 6 items: [ 7 { title: '編集', icon: 'mdi-pencil', event: 'toEdit' }, 8 { title: '削除', icon: 'mdi-delete', event: 'removeTodo(todo)' }//items.eventがクリックで反応しない 9 ] 10 } 11 }, 12 13 computed: { 14 todos () { 15 return this.$store.state.todos.list 16 }, 17 18 methods: { 19 toEdit () { 20 this.itemText = this.todos.indexOf(this.todo) 21 }, 22 removeTodo (todo) { 23 this.$store.commit('todos/remove', todo) 24 } 25 } 26} 27
エラーメッセージで検索を行い、みつかった情報をもとに試みた対策を書いてください。
あなたの回答
tips
プレビュー