Estoy tratando de mutar una referencia dentro de una función de reloj, pero parece que no funciona. Estoy usando el reloj para prestar atención si la longitud de mi matriz cambia, cada vez que eso cambia, necesito comparar la longitud anterior con la nueva y luego mutar una referencia (título seleccionado) si el valor nuevo es menor que el valor anterior.
setup() { const slots = useSlots(); const tabTitles = computed(() => slots.default()[0].children.map((tab) => tab.props.title) ); const tabTitlesLength = computed(() => tabTitles.value.length); let selectedTitle = ref(tabTitles.value[0]); provide("selectedTitle", selectedTitle); provide("tabTitles", tabTitles); watch(tabTitlesLength, (currentValue, oldValue) => { if (currentValue < oldValue) { selectedTitle = tabTitles.value[0]; } else { console.log("fuera del if"); } }); return { tabTitles, selectedTitle, tabTitlesLength, }; },Con ese código, la referencia del título seleccionado nunca cambia, siempre tiene el último valor que recibió cada vez que cambia la propiedad calculada (tabTitles). Simplemente no entiendo por qué, ya que todo lo demás parece funcionar bien.
Dado que el título selectedTitle es referencia, intente con
selectedTitle.value = tabTitles.value[0];