【发布时间】:2019-08-13 01:31:21
【问题描述】:
每当我尝试更新 medMins 时,该函数都会产生两次正确的结果。然而,Vue 返回
[Vue 警告]:组件渲染函数中可能存在无限更新循环。
我尝试将 medMins 切换到计算属性,但得到了相同的结果。我在读到问题是组件呈现然后我正在更改一些组件数据,在此期间一些反应数据被更改导致它重新呈现......等等。有没有办法可以避免这种情况?我可以在这个组件中更新 medMins 还是我必须做一些其他的方式?任何帮助将不胜感激。
Vue.component('day', {
//props: ['items'] or
props: {
dayofweek: {
type: Array,
required: true
},
name:{
type: String,
default: 'Blarg'
},
},
data: function() {
return {
medMins: 0
}
},
methods: {
updateMed: function(day) {
this.medMins += Number(day.endTimeMillis/60000).toFixed()-Number(day.startTimeMillis/60000).toFixed()
}
},
template: ''+
' <div>'+
' <h1>{{name}}</h1>\n' +
' <div class = "row">\n' +
' <div class ="col" v-for="day in dayofweek">{{day.activityType}}' +
' <div v-if="`${day.activityType}` == 45" v-on="updateMed(day)"></div>' +
' </div>' +
' </div>' +
' <h1>{{medMins}}</h1>'+
' </div>',
computed: {
}
});
【问题讨论】:
-
您似乎没有正确使用
v-on。你想听什么活动? -
感谢您的回复,我没有在听任何活动。如果 day.activityType = 45,我只想调用 updateMed()。我将如何在模板中调用该方法?
标签: loops vue.js vue-component infinite