在vuejs上观看道具更改

fou*_*rix 5 vue.js

我想在子组件上使用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