如何在reactjs中更新状态列表中的特定列表

时间:2018-07-20 07:55:43

标签: reactjs

我在这样的状态下使用数组-

this.state = {
     shapes : []
}

和shapes数组包含像这样的列表中的数据

[
   {x: 0, y: 0, height: 10, width: 10},
   {x: 10, y: 10, height: 11, width: 11},
   ...and many more
]

我已获取x和y坐标并更改了它们的值。 对于ex-对于第1项,新值=>  x = 15和y = 15

如何在状态下更新这些值? 对不起我的问题。我想不出另一种方法来问这个问题。

2 个答案:

答案 0 :(得分:0)

您必须在设置状态下将while数组值作为新值提供

this.setState((state) => ({...state, shapes:[{x:15:y:15}, ...state.shapes.slice(1)]}))

答案 1 :(得分:0)

我认为这就是您想要的。

this.setState((prevState) => {
   const newItems = [...prevState.shapes];
   newItems[1].x = 15;
   newItems[1].y = 15;
   return {shapes: newItems};
});