宝哥软件园

Vue无限更新循环的问题求解

编辑:宝哥软件园 来源:互联网 时间:2021-08-25

回答得特别多的问题

vue warn :您可能在组件渲染函数中有一个无限更新循环

最近,当我编写另一个数组进行渲染时,源数据是排序后的数组,但在正常操作中它会爆红:

红色报告代码:

computed: {.mapState({ FromNames(state){ let FromNames=state . quote . FromNames;返回fromNames.sort((a,b)=b . IsBind-a . IsBind);},}),},然后.

然后莫名其妙,终于找到了源头:

您确实导致了一个无限循环,因为array.sort()改变了数组本身,导致过滤器再次被触发。确保对副本上的数组进行排序:返回值. slice()。排序(.)解决方案:

computed: {.mapState({ FromNames(state){ let FromNames=state . quote . FromNames;返回fromNames.slice()。sort((a,b)=b . IsBind-a . IsBind);}、})、},数组方法array.slice()的用法

arr.slice([begin[,end]])slice()方法将把数组的一部分浅拷贝到一个新数组中,并返回新数组。

如果起始位置未定义,则默认为0;如果大于数组长度,则返回空数组;如果是负数,从最后开始计算;

end的结束位置(不包括position元素)如果省略将默认为end;如果大于数组长度,取数组长度;如果是负数,从最后开始计算。

提示:处理类数组对象

Slice()可用于将类数组对象转换为新数组。

例如:

函数list(){ return Array . prototype . slice . call(参数);}var list1=list(1,2,3);//[1,2,3]也可以绑定到函数。函数的原型使用。call(也可以简化为[].slice.call(参数))

var unboundSlice=array . prototype . slice;var slice=function . prototype . call . bind(unboundSlice);函数列表(){返回切片(参数);}var list1=list(1,2,3);//[1,2,3]或

[].切片。call ({0: 0,1 : 2,2: 4,长度: 4})//[0,2,4,空]以上就是本文的全部内容。希望对大家的学习有帮助,多多支持我们。

更多资讯
游戏推荐
更多+