观看计算的代码 属性 似乎从来没有 运行

Code for watched computed property never seems to run

我正在观察计算 属性 返回状态变量。

我确信这个状态变量会随着我所做的某些事情而改变。然而,我的 watch: {} 中的 console.log() 代码从未执行:

computed: {
  simulation () {
    return this.$store.state.simulation
  }
},
watch: {
  simulation () {
    console.log('simulation changed:')
  }
}

我做错了什么?

通过我们在原 post 评论中的对话,我们发现正在更改 simulation 的 属性,而不是整个 simulation 对象。要检测此类更改,OP 只需要 watch 正在更改的 simulation 的特定 属性,而不是整个 simulation 对象。

如果您的 this.$store.state.simulation 是对象,则无法监视对象的变化 属性。您可以观察对象的变化(当 this.$store.state.simulation = newVal,但不是 this.$store.state.simulation.anyProp = newVal 时) 你应该使用深度监视 (https://vuejs.org/v2/api/#watch)