xb18
xb18
文章39
标签0
分类0
由浅拷贝引发的莫名bug

由浅拷贝引发的莫名bug

1
2
3
4
5
6
7

let members = store.getters.members;
members = members.filter(item => item.backupType !== 2);
members = members.filter(member => {
member.name = member.nickname || member.name || member.nid;
return member.role !== 'visitor';
});

因为members的数据结构为数组,其中保存多个对象member,浅拷贝后,对member.name赋值会影响到store.getters.members 中的member,从而影响到全局数据,界面显示异常;

排查方法:对异常触发组件依次排查

修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
let members = store.getters.members;
members = members.filter(item => item.backupType !== 2);
let membersRes = [];
members.forEach(member => {
if (member.role === 'visitor') {
return;
}
const name = member.nickname || member.name || member.nid;
membersRes.push({
...member,
name
});
});
本文作者:xb18
本文链接:http://xb18.github.io/2023/11/09/%E7%94%B1%E6%B5%85%E6%8B%B7%E8%B4%9D%E5%BC%95%E5%8F%91%E7%9A%84%E8%8E%AB%E5%90%8Dbug/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可