当前位置: 首页 > news >正文

v-for产生 You may have an infinite update loop in a component render function

参考文章: 报错解析 [Vue warn]: You may have an infinite update loop in a component render function.
另外一个解决方法
例如:
MyList 是一个数组,我希望将排序后的结果返回进行for循环,因此设计了一个myMethon函数

<div v-for="item in myMethod(MyList,'id')">

函数如下,根据id返回

myMethod (list, field) {if (list.length && list.length > 0) {return list.sort((a, b) => a[field].localeCompare(b[field]))}return list
}

上述例子会造成You may have an infinite update loop in a component render function
原因是在 MyList是经过vue处理过后的对象,里面有一些get,set 监听字段变化,用于更新视图的数据。

从debug视图可以很明显的知道这个是一个被vue处理过的对象,用的是观察者模式。

解决方法很简单

myMethod(MyList,'id') 
换成下面这个,调用MyList的toString,然后再反解析成Json对象
myMethod(JSON.parse(JSON.stringify(MyList)),'id')

http://www.mrgr.cn/news/78295.html

相关文章:

  • Spring Boot + MyBatis Plus 存储 JSON 或 List 列表全攻略
  • ue5 蒙太奇,即上半身动画和下半身组合在一起,并使用。学习b站库得科技
  • linux centos挂载未分配的磁盘空间
  • 【Vue3中使用crypto-js】crypto-js加密解密用法
  • 微深节能 焦炉联锁及无人控制系统 格雷母线
  • 腾讯云AI代码助手编程挑战赛-FinChat
  • 直言抖音电商环境恶化,叶国富也想指点张一鸣
  • 【拥抱AI】RAG如何提高向量化的质量
  • 关于node全栈项目打包发布linux项目问题总集
  • SQL基础入门—— 简单查询与条件筛选
  • ubuntu 安装docker
  • Linux下的火墙管理及优化
  • C语言蓝桥杯组题目
  • WonderJourney 学习笔记
  • Qt获取文件夹下的文件个数(过滤和不过滤的区别)
  • 第 4 章 Java 并发包中原子操作类原理剖析
  • 【Jenkins】docker 部署 Jenkins 踩坑笔记
  • 类和对象--中--初始化列表(重要)、隐式类型转化(理解)、最后两个默认成员函数
  • Android 布局菜单或按钮图标或Menu/Item设置可见和不可见
  • 《Vue 初印象:快速上手 Vue 基础语法》
  • PostgreSQL详细安装教程
  • 基于SpringBoot共享汽车管理系统【附源码】
  • Docker容器运行CentOS镜像,执行yum命令提示“Failed to set locale, defaulting to C.UTF-8”
  • linuxCNC(三)ini配置文件说明
  • 利用编程思维做题之最小堆选出最大的前10个整数
  • 网络基础二