Tengo este extraño problema que no puedo solucionar. Se supone que testArray cambia su valor de 'Esto es una prueba' a la matriz de elementos de ItemList , y lo hace. Sin embargo, se actualiza de una manera extraña, casi como si fuera una actualización tardía: cuando cambio la emisión a ('respuesta', elementos), no funciona. Pero, cuando cambio 'elementos' a 'prueba', muestra la matriz.
¡Cualquier ayuda sería muy apreciada!
aplicación.vue
<script setup> import ItemList from "./components/ItemList.vue"; import {ref} from "vue"; const testArray = ref('This is a test') </script> <template> <ItemList @response="(msg) => testArray = msg" /> <ul> <li v-for="item in testArray" :key="item.id"> {{item.name}} </li> </ul> </template>ItemList.vue
<script setup> import {ref} from "vue"; const items = ref([ {id: 1, name: 'SomeRandomName'}, {id: 2, name: 'SomeRandomName'}, {id: 3, name: 'SomeRandomName'}, ]) const test = ref(['Something']) const emit = defineEmits(['response']) emit('response', items) </script> <template> </template>Probaste con:
emit('response', items.value)