在这里,这个问题Vuejs: Computed property not updating the view,我正在监视moment.js实例的更改,并且视图不会更新。
这是无效的原始代码的摘录:
set(value) {
this.paidFinish = this.paidFinish.hour(value);
}
这是我要解决的问题:
set(value) {
this.paidFinish = this.paidFinish.clone().hour(value);
}
为什么Vuejs无法检测到更改?正在通过this
访问该对象,并且初始数据中存在属性paidFinish
。 (最初将其设置为''
,但是在安装组件时将其设置为片刻。)
答案 0 :(得分:0)
遇到同样的问题。
结果是the moment object mutates and always returns the same object,因此Vue无法为其添加反应性(有关此说明,请参见the docs)。
解决方法是使用frozen-moment库或在组件中创建间隔:
data () {
return {
time: ''
}
},
beforeMount () {
setInterval(() => {
this.time = moment().format('HH:mm:ss')
}, 1000)
}
或者...
使用不可变的date-fns