最近使用v-if中由于判定条件比较多,再加上一点奇思妙想,就决定在v-if中调用函数,差不多是这样。
<el-checkbox v-model="checked1st" v-if="modifyByMyself(item.id)">修改环节由标注本人处理</el-checkbox>
<el-checkbox v-model="checked2nd" v-if="checkBySamePerson(item.id)">多次检查由相同人员处理</el-checkbox>
函数就理所应地写在computed里面,其一如下。
modifyByMyself(id){
const type = this.formValue.flowType;
const flag = (type == id && (type == 6 || type == 7 || type == 8));
this.checked1st = flag;
return flag
},
结果运行就报错了
看起来也算是个常规错误了,最后思前想后决定函数还是放在methods里面。
项目运行,确实不报错了,但项目直接卡死了,页面直接未响应了。
最后试了半天,发现是函数里赋值的原因,去掉this.checked1st = flag这一行就行了。
具体是啥原因也不太清楚,在下只是个前端菜鸟,想来可能是v-if触发时机的问题。
记录一下