【发布时间】:2018-01-30 18:25:49
【问题描述】:
我有这个“基本”函数,它检查数组中的 [i] 元素是否与 id 相同:
checkArray(offer, id){
if (id)
{
this.count=0;
for (var i in offer.specialities) {
if (offer.specialities[i] == id)
{
console.log("bam!")
// this.count=+1;
return true;
break;
}
}
return false;
}
else {
return true;
}
},
变量计数在 vuejs 数据中声明
data() {
return {
count: 0
}
}
checkArray 是从 v-show 调用的:
<v-layout row wrap v-for="offer in offers.slice((current_page-1)*5, current_page*5)"
v-show="checkArray(offer, speciality)">
此时一切正常。我有两个棒棒糖。
现在当我取消注释 this.count=+1;
我有200个bams!我的 vuejs 控制台尖叫:
[Vue warn]: You may have an infinite update loop in a component render function.
为什么会这样?如何计算变量中的 bam 数?
【问题讨论】:
-
这不是无限循环,而是语法错误。您不能拥有
for (i=0 in offer.specialities)。您可以使用for (i in offer.specialities),但不能使用=0。 -
i=0 in offer.specialities那该怎么办?? -
@JonasW.:如果是的话,它需要两个
;s。 -
也许无限循环是调用
checkArray的地方 -
@gileneusz 你在哪里打电话给
checkArray? ...您能提供您的代码中的template吗?最有可能发生的是,在您的checkArray方法中使用this.count会一遍又一遍地改变状态,导致组件每次都重新渲染。
标签: javascript vue.js