Vue 中监听数组变化:解决 a-input 输入数据后 watch 函数不触发的问题

在 Vue 中,watch 选项只能监听对象的属性,而无法监听数组的变化。由于leftEarData是一个数组,所以无法直接通过 watch 来监听它的变化。

要解决这个问题,可以使用 Vue 提供的$watch方法来监听数组的变化。在组件的mounted生命周期钩子函数中使用$watch方法来监听leftEarData数组的变化,如下所示:

mounted() {
  this.$watch('leftEarData', (newValue) => {
    console.log(newValue);
    updateChart(newValue);
  }, { deep: true });
}

在上述代码中,deep: true选项表示深度监听,即监听数组内部元素的变化。

此外,还需要将leftEarData数组定义在 Vue 组件的data选项中,以便能够正确地触发$watch方法。修改代码如下:

data() {
  return {
    leftEarData: [
      { hz: '500', result: '' },
      { hz: '1k', result: '' },
      { hz: '2k', result: '' },
      { hz: '3k', result: '' },
      { hz: '4k', result: '' },
      { hz: '6k', result: '' },
    ]
  };
},

这样就可以正确地监听leftEarData数组的变化了。当a-input输入数据后,$watch方法就会触发,并执行相应的回调函数。


原文地址: http://www.cveoy.top/t/topic/p4uo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录