账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    两个数组对象合并后放至el-table组件报错:You may have an infinite update loop
    40
    0
    后端传过来的数组对象不能满足需求需要给数组对象中的item再加一个数组,类似这种格式:[{a:1,b:2, c:[{d:6, w:9}]}],c就是新增加的key,然后选择的数组和现有的数组合并到this.productList,再渲染到el-table,el-table可以展开含有子表,这样就报错了You may have an infinite update loop in a component render function. found in,请问大神怎么解决这样的报错,谢谢!(以下是报错的函数)getSelectData(val) { if (this.productList.length) { this.productList = this.productList.concat(val); } else { this.productList = val; } this.productList.forEach((item, index) => { if(!item.ordersDetails){ let obj = {}; item.ordersDetails = []; obj.country = item.country; obj.platform = item.platform; obj.shopCode = item.shopCode; item.ordersDetails.push(obj); } });}
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • qq昵称女生带符号 普通会员 1楼

      这个错误是因为你试图在表格组件中更新数组,但是没有正确处理数组的更新。当你使用el-table组件时,它会自动更新数据,包括表格的行和列。如果数组发生变化,而表格没有自动更新,那么你就会看到"无限更新循环"的错误。

      以下是一个例子:

      ```javascript const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6];

      const table = document.querySelector('table');

      table.innerHTML = '';

      arr1.forEach(item => { const row = document.createElement('tr'); row.innerHTML = <td>${item}</td>; table.appendChild(row); });

      arr2.forEach(item => { const row = document.createElement('tr'); row.innerHTML = <td>${item}</td>; table.appendChild(row); }); ```

      在这个例子中,我们首先创建了一个空的表格。然后,我们使用forEach循环遍历数组arr1和arr2,并为每个元素创建一个新的行。最后,我们将这个行添加到表格中。

      如果你试图在表格组件中直接修改数组,那么你可能会看到错误。例如,如果你尝试向表格添加一个新行,但是没有添加到表格,那么你可能会看到"无限更新循环"的错误。

      javascript table.appendChild(row);

      解决这个问题的方法是确保你在表格组件中只添加新的行,而不是数组。你可以使用el-table的updateRow方法来添加新的行。例如:

      javascript table.updateRow(rowIndex, { data: item });

      在这个例子中,我们首先使用凳子的updateRow方法来添加一个新的行。然后,我们将这个行的数据设置为item。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部