我想在子组件上使用watch作为道具,但是它不起作用。
这是我的代码:
props: {
searchStore: {
type: Object
}
},
watch: {
searchStore(newValue) {
alert('yolo')
console.log(newValue)
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不起作用
我看了这篇文章,尝试了所有方法,但没有任何效果:VueJs 2.0-如何收听“ props”更改
我用Vue Devtools检查了我的道具,并且它正在改变。
在此先感谢社区!
Dan*_*iel 10
基于该代码,它应该可以工作,因此问题可能出在其他地方。您可以发布更多代码吗?
如果要立即运行,可以使用immediate。这是语法:
watch: {
searchStore: {
immediate: true,
deep: true,
handler(newValue, oldValue) {
}
}
},
Run Code Online (Sandbox Code Playgroud)
该deep: true设置将深入监视对象内的更改。
在父组件中更新此对象的各个部分时,请确保使用Vue的$set功能。
this.$set(this.searchStore, 'myKey', {price: 12.22});
Run Code Online (Sandbox Code Playgroud)
进一步阅读:https : //vuejs.org/v2/guide/reactivity.html#Change-Detection-Caveats