#javascript #vue.js #vuejs3
Вопрос:
Я получил ошибку консоли, когда попытался перечислить пользовательское событие в параметре компонента «испускает», как это:
родитель
<Btn
event-name="toggleSideMenu"
@toggle-side-menu="toggleHandler">
toggle
</Btn>
ребенок
<template>
<button @click="handleClick">
<slot></slot>
</button>
</template>
export default {
props: {
eventName: {
type: String,
default: ''
}
},
emits: [this.eventName], // Uncaught TypeError: Cannot read property 'eventName' of undefined
methods: {
handleClick() {
this.$emit(this.eventName)
}
}
}
Как правильно заставить эту штуку работать?
Комментарии:
1. уберите это. из массива излучений.
2. получена аналогичная ошибка: Не удалось скомпилировать. ошибка «Имя события» не определено нет-не определено
3. О чем
emits: {this.eventName: null}
это ?4. Пожалуйста, поделитесь своим кодом эмиссии и родительским элементом, который прослушивает имя события.
Ответ №1:
Я не думаю, что ты сможешь это сделать.
Возможно, вам придется найти способ обойти это. Вы все еще можете выдавать событие, не определяя его в emits
массиве, но в конечном итоге вы теряете некоторые преимущества.
Для этого есть RFC/предложение, но, похоже, оно никуда не приведет.