this.$emit
が使えない、と思ったら this
自体が undefined
だった、という初歩的な原因。
アロー関数内では thisは使えません、というオチでした。
<template> <!-- 略 --> <v-btn color="primary" @click="onClickSearch">``` <!-- 略 --> </template> <script> <!-- 略 --> methods: { onClickSearch: () => { // アロー関数 let self = this self.$emit('search') } } <!-- 略 --> </script>
Error in v-on handler: "TypeError: Cannot read properties of undefined (reading '$emit')" TypeError: Cannot read properties of undefined (reading '$emit')
修正例
<template> <!-- 略 --> <v-btn color="primary" @click="onClickSearch">``` <!-- 略 --> </template> <script> <!-- 略 --> methods: { onClickSearch() { let self = this self.$emit('search') } } <!-- 略 --> </script>
うごいた!