为什么控制台会疯狂打印,抛出这个警告?
Maximum recursive updates exceeded in component <ElFormItem>. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function
watch(printInfoList.value, (newVal) => {
isComplete = true
newAttr = ''
for (let index = 0; index < newVal.length; index++) {
setGoodsAttr(newVal[index])
}
// 好像是因为这段代码
emits("update:attrInfo", {
goodsAttr,
isComplete,
oldAttr,
newAttr
});
}, true)
for (let index = 0; index < newVal.length; index++) {
setGoodsAttr(newVal[index])
}
问题在于你深度监听了printInfoList.value, 并且在监听回调中直接修改了你要监听的值.从console来看, printInfoList的length 为101, 即你每改动一项, 上一个for循环可能还未结束又因为改动触发监听开启了下一个for循环.
解决办法的话, 从方法名推测,设置商品属性.监听数组变动自动添加.把设置值这个过程从监听里移除,放进你会导致数组长度变动的操作逻辑里面就好了.
首先我把这个提示大致翻译下(英语不是很好,请见谅):
某个组件中超过了最大递归更新。这意味着你有一个效果正在起反应,但是它正在改变自己的依赖关系,从而自己也触发了。
从我别扭的翻译中其实可以大致猜到,这个叫做<ElFormItem>的组件的响应式变量被自身依赖,同时又被其它变量所依赖,出现无限死循环更新导致控制台疯狂打印的情况。
要避免这种情况,需要尽量减少响应式变量之间的相互依赖关系,确保一个变量不会依赖于自身或者间接依赖于自身。对于组件内部的响应式变量,可以使用computed属性来控制它的行为,这样可以依赖其他变量计算得到,不会自身递归循环。
一般来说带有 Maximum
这样的问题都是自己业务代码的问题。
要么就是短时间内更新了多次,要么就是业务代码有问题出现死循环了。
我刚刚更新了我的React-Native应用程序,当我试图制作另一个内测版时,在谷歌游戏控制台收到了这条错误消息。 未知验证VALIDATE_APP_MESSAGE_NO_APKS 最新的版本上传没有问题,这个版本只有很少的变化。毫无疑问。很抱歉提供这么少的信息。 有人在Google Play Console上上传最新更新的应用程序时遇到过这个错误消息吗?
vue3 新的 defineModel parent: <Input v-model:p_input="test_input" /> son: <el-input v-model="myInput" placeholder="Please input" /> 报警告: Extraneous non-emits event listeners (refresh) were passed to com
在我的浏览器控制台中获取警告:
我的笔记本电脑硬盘出现故障,我不得不在新硬盘上重新安装IntelliJ和windows。在我的旧驱动器中,我能够在控制台中打印(system.out.println)外语,没有任何问题,但在重新安装后,我的控制台无法识别文本,我得到了这样的输出 我不认为这是因为我的源代码中有任何错误,是否有任何方法可以配置我的IDE以能够识别此文本(在本例中为泰米尔语,但我需要支持大量语言) 提前谢谢你,苏马尔。
我有一个模板,我需要知道提供的变量的长度。。。 它吐出了正确的信息,似乎工作得很好,但它给出了以下警告: [Vue warn]:计算表达式{input_prefix:(prefix.length)时出错 我真的很想把它做好,摆脱警告。有什么想法吗? 向约翰·拉杰问好
我正在android应用程序中使用firebase。几天后,firebase突然停止向主firebase控制台报告崩溃。我得到以下错误每当任何崩溃发生在应用程序。 我的分级文件如下所示 我已经尝试更新api密钥,但我没有得到任何更新它。提前致谢