我试图在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).我只是不明白为什么,因为其他一切似乎都很好.

推荐答案

因为selectedTitle是ref try with

selectedTitle.value = tabTitles.value[0];

Javascript相关问答推荐

使用axios.获取实时服务器时的404响应

Google图表时间轴—更改hAxis文本 colored颜色

按下同意按钮与 puppeteer 师

更改JSON中使用AJAX返回的图像的路径

如何让npx在windows中运行js脚本?

可更改语言的搜索栏

Reaction Native中的范围滑块

使用类型:assets资源 /资源&时,webpack的配置对象&无效

警告框不显示包含HTML输入字段的总和

图表4-堆叠线和条形图之间的填充区域

使用线性插值法旋转直线以查看鼠标会导致 skip

使用API调用的VUE 3键盘输入同步问题

在单击按钮时生成多个表单时的处理状态

在Press Reaction本机和EXPO av上播放单个文件

Node.js的Fetch()调用总是创建新的Express会话

是否在图表中计算线上的点坐标?

在openstreemap/leaflet中,当鼠标在 map 上移动时,如何在小工具提示中实时显示坐标

将数据添加到数据库时不输出

制表机表宽度在第一次加载时缩小,拖动后正在调整

如何在Flat Pickr中更改取消选中日期的 colored颜色