Vue 中监听数组变化:解决 a-input 输入数据后 watch 函数不触发的问题
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 著作权归作者所有。请勿转载和采集!