我可以在Vue3组件emit中访问它吗?

ckocjqey  于 2023-06-30  发布在  Vue.js
关注(0)|答案(1)|浏览(153)

我找到了能发射东西的部件。。

<li v-for="multigate in store.availableMultigates">
  <Multigate :multigate="multigate" @antennas="showAntennas" />
</li>

...像这样(在组件内部):

emit('antennas', connectedAntennas.value )

下面是函数的外观:

const showAntennas = (connectedAntennas) => {
  console.log(connectedAntennas)
}

是否有可能在函数中我可以访问'multigate'示例(从v-for循环)?或者是“这个”?如果是,如何进行?

h79rfbju

h79rfbju1#

现场的要点在这里。
将事件侦听器绑定到函数,而不是JS表达式showAntennas()。因此,您将在函数参数中获取事件参数:

<script setup>
    
  import Multigate from './Multigate.vue';
  
  import { ref } from 'vue';

  const $log = ref();
  
  function showAntennas(multigate){
    $log.value.textContent = JSON.stringify(multigate);
  }

</script>

<template>
  <Multigate :multigate="{multigate:true}" @antennas="showAntennas" />
  <div ref="$log"></div>
</template>

Multigate.vue

<script setup>
const props = defineProps(['multigate']);
</script>
<template>
    <button @click="$emit('antennas', multigate)">Emit antennas</button>
</template>

相关问题