我有一个包含多个包含多个对象的数组,我想更新对象中的任何值。我能够更新对象,但是我的问题是每当我更新父阵列变成对象的阵列内的任何对象时。我不想将数组更改为对象。我正在共享我的代码以及输出和预期的输出。
this.setState({
tempArray: {
...this.state.tempArray,
[lineNo]: {
...this.state.tempArray[lineNo],
[pointNo]: {
...this.state.tempArray[lineNo][pointNo],
x:parseInt(x),
y:parseInt(y)
}
}
}
},
()=>{
console.log('callback tempArray',this.state.tempArray);
})
如果我将给定数组中的第一个数组x:7更改为x:10
[[{x:7,y:20}],[{x:50,y:60}],[{x:30,y:40}]]
我的输出是
[{x:10,y:20},[{x:50,y:60}],[{x:30,y:40}]]
但是我的预期输出是
[[{x:10,y:20}],[{x:50,y:60}],[{x:30,y:40}]]
答案 0 :(得分:0)
您正在将[lineNo]
设置为一个对象。像这样尝试:
tempArray: {
...this.state.tempArray,
[lineNo]: [ // <--- [ instead of {
...this.state.tempArray[lineNo],
[pointNo]: {
...this.state.tempArray[lineNo][pointNo],
x:parseInt(x),
y:parseInt(y)
}
]// <--- ] instead of }
}