Я пытаюсь передать опору emit в VUE 3, каждый раз, когда я ее передаю, я все равно получаю false, и опора не переключается.
Accordion.vue
<template>
<div class = "flex" @click = "toggleInfo()">
<slot></slot>
</div>
</template
<script>
export default {
props: {
value: {
required: true
}
},
setup(props, { emit }) {
const toggleInfo = () => {
emit('input', !props.value)
}
return {
toggleInfo
}
}
}
</script>
App.vue
<accordion v-model:value = "isOpen">
...// just data
</accordion>
<script>
import { ref } from 'vue'
import accordion from '../components/Accordion.vue'
export default {
components: {
accordion
},
setup() {
const isOpen = ref(false)
return {
isOpen
}
}
}
</script>
Каждый раз, когда я нажимаю toggleInfo, я все равно получаю:
false
мой излучатель не работает.





Схема подключения v-model изменилась в Vue 3:
valuemodelValueinputupdate:modelValueПоскольку value технически является пользовательским именем свойства v-model, вам необходимо настроить имя генерируемого события, чтобы оно соответствовало:
// emit('input', !props.value) ❌ wrong event name
emit('update:value', !props.value)