首页 > 解决方案 > 观看 vuejs 上的 props 变化

问题描述

我想在子组件上使用 watch 作为道具,但它不起作用。

这是我的代码:

props: {
    searchStore: {
        type: Object
    }
},
watch: {
    searchStore(newValue) {
        alert('yolo')
        console.log(newValue)
    }

不幸的是,它不起作用

我看过这篇文章并尝试了一切,但没有任何效果:VueJs 2.0 - 如何监听“props”的变化

我用 Vue Devtools 检查了我的道具,它正在改变。

在此先感谢社区!

标签: vue.jsvuejs2

解决方案


基于该代码,它应该可以工作,因此问题可能出在其他地方。您可以发布更多代码吗?

如果你想立即运行,你可以使用immediate. 这是语法:

  watch: {
    searchStore: {
      immediate: true,
      deep: true,
      handler(newValue, oldValue) {

      }
    }
  },

deep: true设置将深入观察对象内的变化。

当您在父组件中更新此对象的部分内容时,请确保使用 Vue 的$set功能。

this.$set(this.searchStore, 'myKey', {price: 12.22});

进一步阅读:https ://vuejs.org/v2/guide/reactivity.html#Change-Detection-Caveats


推荐阅读