Vue计算的属性未更新

时间:2019-05-16 13:37:16

标签: vue.js

我的对象数据属性为空

*.cs;*.cshtml

然后我有一个计算属性,其结果与所选属性有关。

data() {
  return {
    chosen: {},
  }
}

}

然后我有一个实际上可以更改所选属性的方法

myComputed() {
  let result = 0
  Object.entries(this.chosen).forEach(([key, value]) => {
    result = result + value
  })
  return result

因此,当我调用setChosen并添加新值时,不会执行myComputed并且不会更新我的视图值。

1 个答案:

答案 0 :(得分:1)

我认为这是由于您的计算方法未检测到更改所致,请在此处阅读更多信息:https://vuejs.org/v2/guide/reactivity.html#Change-Detection-Caveats

尝试以下操作:

setChosen(someValue) {
    // IF no key is parsed
    this.$set(this.chosen, 'key', someValue)

    // IF key is parsed
    // this.$set(this.chosen, key, someValue)

}

很显然,如果someValue仅是值,则需要将'key'用引号引起来直接将其命名为:key。如果您的函数将第二个值解析为字符串,则直接使用它即可。

有效地设置新值