【问题标题】:Vue.js deep watching of computed property using other computed property objectsVue.js 使用其他计算属性对象深度观察计算属性
【发布时间】:2021-11-08 08:00:06
【问题描述】:

我知道使用“watch”部分中的处理程序对属性进行深入观察,但我没有看到如何在 getter/setter 计算属性中进行 vue 深度观察。

基本上我有这样的东西,其中vue无法观察到变化。

如何告诉 vue 观察“someComputedProperty”的变化?

computed: { 
    someComputedProperty: {
      set (value) {
        this.someComputedPropertyObject[this.someOtherObject.id] = value;
      },

      get () {
        return this.someComputedPropertyObject[this.someOtherObject.id];
      }
    }
  }

提前致谢,

埃里昂

【问题讨论】:

  • 计算不是那样工作的。观察者就是这种情况。
  • Estus,谢谢,但在我的情况下,观察者不会有所作为。我正在寻找并合理地认为 Vue 应该检测到计算属性中引用的对象发生了更改,并且应该能够通知更改。 @DecadeMoon 的建议更接近我的想法。

标签: vue.js


【解决方案1】:

如果 someComputedPropertyObject 是 Vue 计算属性,则其值不会被设计为可观察(如果它创建一个新对象)。

此外,someComputedPropertyObject 是否预先定义了 this.someOtherObject.id 属性?如果不是,您正在创建一个 Vue 无法观察到的新属性。请改用Vue.set(或this.$set)。

【讨论】:

  • 感谢您的意见。我会试试那个 Vue.set。对象 [this.someOtherObject] 是一个计算属性(使用 getter/setter),它是用户交互的结果。
猜你喜欢
  • 1970-01-01
  • 2017-04-25
  • 2016-04-22
  • 2017-11-29
  • 2020-02-05
  • 2017-09-16
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
相关资源
最近更新 更多