当前位置: 首页 > 知识库问答 >
问题:

前端 - vue2 watch监听里面不能用循环吗?为什么使用foreach就陷入死循环?

邓驰
2023-12-11

watch监听里面使用foreach就陷入死循环,为什么?

watch: {    dataList: {      handler(newVal) {        if (newVal) {          newVal.list.forEach(item => {            if (item.type == '2') {              this.tableData.push(item)            }                      })        }      },      deep: true    }}


我想过滤掉type != 2的数据,不用在表格渲染出来

共有3个答案

钱黎明
2023-12-11

可能是item造成的, 可以试试

this.tableData.push({...item})
夔高寒
2023-12-11

item push前深克隆下试试
var obj = structuredClone(item)
this.tableData.push(obj)

丰胤运
2023-12-11

根据你这边贴出来的代码,最可能得原因是dataList和this.tableData的数据源地址相同

 类似资料:
  • 我想知道为什么这个函数中的foreach循环在只经过一次循环后输出数据就结束了。我在MySQL中运行了这个查询,它返回了我要查找的8条记录。当I

  • 我正在迭代Java 7循环和Java 8 循环中的列表。Java 8 循环希望其中的变量不会更改。例如: 有人能解释一下为什么吗?是Java 8的弊端吗?

  • 问题内容: 我可以使用分号在Python中加入行,例如 但是为什么我不能这样做 问题答案: 简短的(至今有效的)答案只是“因为未定义语言语法以允许它”。至于为什么 这是 的话,就很难,如果除非你问任何人与语法的部分来了,但我想这是由于可读性,这是Python的目标之一并非不可能,以确保1。 你为什么要写像这样晦涩难懂的东西?只需将其分成多行: 我认为这种变体要清晰得多。 1自: 可读性计数。

  • 我在Android Studio中编写了这个简单的for循环。 但它建议使用foreach循环更改此for循环。像这样 为什么Android工作室建议foreach循环而不是for循环?使用foreach循环而不是for循环有什么好处吗?

  • 问题内容: 我一直在使用“ if”来测试自己的版本,并且一切似乎都正常。当然,如果使用signalAll()而不是signal(),这将导致严重崩溃,但是如果一次仅通知一个线程,这怎么会出错? 他们的代码在这里 -检查put()和take()方法;在Condition的JavaDoc顶部可以看到一个更简单,更重点的实现。 下面是我实施的相关部分。 PS我知道,通常,尤其是在这样的lib类中,应该让

  • foreach循环遍历列表值并将控制变量(var)依次设置为列表的每个元素 - 语法 (Syntax) Perl编程语言中foreach循环的语法是 - foreach var (list) { ... } 流程图 (Flow Diagram) 例子 (Example) #!/usr/local/bin/perl @list = (2, 20, 30, 40, 50); # foreach lo