今天遇到一个问题: You may have an infinite update loop in a component render function. 网上虽然没有和我如出一辙的使用场景,但思想是差不多的。经过查资料终于解决,在此记录一下。
使用场景: el-tooltip在某些情况下可用,某些情况下禁用,出现上述报错的代码如下:
html:
<el-tooltip
effect="dark"
:content="getCartStatus(scope.row)"
placement="top"
:disabled="disCartTooltip">
</el-tooltip>
js:
getCartStatus(course) {
this.disCartTooltip = course.isInCart === 1;
},
原因是:
不停地更新变量状态,需要不停地渲染。
解决方法: 在渲染以前更新数据状态。在我的实例中,就是先告诉浏览器el-tooltip是否可用,如果可用,才去告诉浏览器hover的内容是什么。 代码如下:
<el-tooltip
effect="dark"
:content="getCartStatus(scope.row)"
placement="top"
:disabled="scope.row.isInCart === 1">
</el-tooltip>