我的对象数据属性为空
*.cs;*.cshtml
然后我有一个计算属性,其结果与所选属性有关。
data() {
return {
chosen: {},
}
}
}
然后我有一个实际上可以更改所选属性的方法
myComputed() {
let result = 0
Object.entries(this.chosen).forEach(([key, value]) => {
result = result + value
})
return result
因此,当我调用setChosen并添加新值时,不会执行myComputed并且不会更新我的视图值。
答案 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。如果您的函数将第二个值解析为字符串,则直接使用它即可。
有效地设置新值