动态对象计算值未更新

时间:2017-11-04 16:42:15

标签: vue.js vuejs2

我在动态填充的对象数组中遇到计算属性时遇到问题。 我有一系列客户,由用户在表单中动态填充。用户可以根据自己的喜好添加尽可能多的客户。 每个客户都有一个根据对象中的其他值计算的价格字段。此外,每个客户的价格都基于适用于所有客户的一些通用设置。

因此我有一个计算函数,它应该更新每个客户的价格。该功能如下所示:

this.booking.customers.forEach(function(customer) {
    var price = 0;
    self.booking.packages.forEach(function(package) {
        ... // based on the packages the price variable is changing
    }
    customer.price = price;
}

计算有效 - 因为如果我打开vue devtools,会突然应用该值,然后Vue也会识别出依赖关系(一旦我更改了某个值,所有价格都会相应调整)。

所以我的问题是:最初,Vue没有正确更新属性。一旦我打开devtools一次,从那一刻起它就会相应地适应。

也许我没有以正确的方式使用计算属性,但使用方法也不是我需要的,因为我希望价格值在任何依赖关系发生变化时立即改变。

希望问题是可以理解的。在此先感谢您的帮助。

修改

这是一个小提琴,可能会更好地突出问题。我想我在滥用计算值,但我不知道如何告诉Vue价格需要在其他一些值发生变化时改变。 http://jsfiddle.net/6bw50j9d/2/

另一个编辑: 我能够使用深度观察者解决我的问题,我在另一篇文章中找到了这个解决方案。见Vue.js - How to properly watch for nested properties

0 个答案:

没有答案