vue 使用sort()方法报错:“You may have an infinite update loop in a component”
特意翻译了下You may have an infinite update loop in a component (组件中可能有无限的更新循环);最近在做一个字母和数字组合排序的vue项目的时候,第一反应就是使用sort()函数,结果在直接对对应数组进行sort()的时候,居然报错了,奇怪。。。后面百度了下,看到大家都出现这种情况,就否定了自己代码写错的疑虑。仔细一想,我是从后台获取到数据之..
·
特意翻译了下You may have an infinite update loop in a component (组件中可能有无限的更新循环);
最近在做一个字母和数字组合排序的vue项目的时候,第一反应就是使用sort()函数,结果在直接对对应数组进行sort()的时候,居然报错了,奇怪。。。
后面百度了下,看到大家都出现这种情况,就否定了自己代码写错的疑虑。仔细一想,我是从后台获取到数据之后对数据赋值给data里变量再去sort()函数排序的;故我就在获取数据后先对数据进行排序处理后再去赋值,代码如下:
// 数组排序
sortArr (arr) {
arr.sort(function compareFunction(param1, param2) {
return param1.localeCompare(param2);
});
return arr;
},
// 后台获取的数据
if (datas.code === 0) {
if (datas.data!=null) {
datas.data.list.forEach(i => {
if (i.rooms && i.rooms.length != 0) {
i.rooms.forEach(item => {
if (item.roomNOs.length != 0) {
item.roomNOs = this.sortArr(item.roomNOs); // 先排序
}
});
}
});
}
// 再赋值
this.list = datas.data.list;
}
注:排序的先后顺序
更多推荐
已为社区贡献16条内容
所有评论(0)