我试图在watch函数中变异ref,但它似乎不起作用.我使用watch来注意数组长度是否发生变化,每当发生变化时,我都需要将旧长度与新长度进行比较,然后在新值小于旧值时变异一个ref(selectedTitle).
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,
};
},
使用该代码,selectedTitle引用从不更改,每当计算(computed)属性更改时,它始终具有接收到的最后一个值(tabTitles).我只是不明白为什么,因为其他一切似乎都很好.