回答得特别多的问题
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,空]以上就是本文的全部内容。希望对大家的学习有帮助,多多支持我们。