我是$emit概念的新手。我尝试了下面的一些方法,但它不起作用。当我按下按钮时,我想向SelectComponent发出一个事件,以取消选中当前选中的所有复选框。我该如何做?
App.vue:
<button @click="$emit('UncheckCheckbox')">Uncheck all boxes!</button>
<div v-for="d in myArray">
<SelectComponent />
</div>
SelectComponent.vue:
<template>
<input type="checkbox"/>
</template>
<script lang="ts" setup>
const emit = defineEmits<{
(event: 'UncheckCheckbox'): void;
}>();
const UncheckCheckbox = ((event: Event) => {
if ((event.target as HTMLInputElement).checked) {
(event.target as HTMLInputElement).checked = false;
}
})
2条答案
按热度按时间oknwwptz1#
请,看看下面的片段(不需要发射只是使用 prop ):
cxfofazt2#
要向多个兄弟组件发出事件,需要将eventbus注册为全局属性。
按钮
选择组件
使用全局事件总线,你可以在任何地方发射/监听事件。
但我认为这并不是一个好的做法,控制所有的复选框更符合数据视图的概念。
选择组件