我现在正在开发一个组件,它有一个名为item的项目,我需要注意更改。到目前为止,我有一块这样的手表:
IMFSample
该项目会在按钮点击时获得有新时间戳的更新。在Vue开发工具中,我可以看到道具正在使用值进行更新,但观察者无法正常工作,我甚至没有收到日志消息。
答案 0 :(得分:6)
正如@Bert所说,如果item
是一个对象并且其中一个变化是它的道具,那么你的观察者就不会被触发。
你可以试试这个:
watch:{
item:{
handler: function(newVal, oldVal) { // watch it
console.log('Prop changed: ', newVal, ' | was: ', oldVal)
},
deep: true
}
}
答案 1 :(得分:1)
这有点离题,因为它涉及到我的数据结构,但仍然给我带来了一个问题,即数据未被监视。我将.Net与vuejs CDN链接和复杂的数据结构一起使用。 VueJs不喜欢这种手表结构。因此,对于数据项“ watchme”,使用此-> object.item.watchme或使用watchme都无法进行监视。因此,我必须执行以下操作:
我首先需要根据计算设置一个代理人
computed:
watchme: function () {
return object.item.watchme;
},
然后观看代理人
watch:
watchme: {
handler: function (newVal, oldVal) { // watch it
console.log('prop changed: ', newVal, ' | was: ', oldVal)
},
deep: true
}
这对我来说很有效: