微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用...运算符或Array.from或slice0,Javascript / React分离状态为对象的数组

如何解决无法使用...运算符或Array.from或slice0,Javascript / React分离状态为对象的数组

这是我的状态

state = {
 size: window.innerWidth <= 700 ? (window.innerWidth <= 425 ? 200 : 300) : 400,positions: [
   { row: 2,col: 5,value: 2,id: 1 },{ row: 3,col: 2,id: 2 },],}

这就是我在做什么

//let oldPosition = Array.from(this.state.positions);  //1 method
//let oldPosition = [...this.state.positions];         //2 method
let oldPosition = this.state.positions.slice(0);       //3 method
oldPosition[1].value = 14;

我在3种方法中所做的一切 我无法阻止状态的改变

我试图复制位置并将其存储在oldPosition中,但是在更改oldPosition中的任何值时,我都会以某种方式更改我的应用的原始状态:(

感谢您的帮助。

解决方法

为了克隆对象数组,您可以通过在状态数组上进行映射并使用散点图返回每个对象来创建新数组。

let oldPosition = this.state.positions.map(pos => ({...pos}));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。