传递给组件,通过槽,一个发出事件的组件

问题描述

大家好:我有一个模式,我希望按钮通过插槽传递,每个插槽都有自己的事件。问题是当我点击按钮时,事件会触发,但家长听不到。

<template>
 <modal-detail v-if="viewModal" title="Modifica brands" @close="viewModal=false">
        <!-- <template #header><p>Ciao bob</p></template> -->
        <template #body>
            sdfgsfgddd
        </template>
        <template #actions>
            <button-cancel buttonText="cancella" @click="$emit('close')"></button-cancel>
            <button-confirm buttonText="conferma" @click="$emit('confirm')"></button-confirm>
        </template>
    </modal-detail>
</template>

问题是@close="something" 从来没有被调用过。

建议?

谢谢大家

解决方法

您似乎在使用自定义组件按钮。您需要将 @click 处理程序绑定到 prop 回调或使用 @click.native 来应用点击处理程序。

为了帮助调试事件和其他问题,例如将来与 Vuex 相关的问题,您可以使用 Vue browser dev tools

如果您安装该插件,并检查事件流,您可以看到什么事件正在发出。例如,如果您没有使用自定义按钮正确设置点击处理程序,那么您将不会看到事件被发出。