reactjs更改状态对象内的对象属性

时间:2017-05-24 12:08:27

标签: javascript reactjs

我得到一个对象作为get的响应。

现在我将对象分配给状态var(object),如下所示:

 this.setState({editData: response.data})

有没有办法更改此对象中的值?

我想到了这样的事情:

this.setState({editData.[var]: [value]})

感谢

1 个答案:

答案 0 :(得分:3)

首先,你必须记住,你不应该直接改变状态对象。所以首先你要制作一个状态对象的副本并改变副本。然后将此副本设置为状态。您可以使用扩展语法来实现它:

this.setState((prevState) => ({editData: {...prevState.editData, [var]: value}}));

以下是显示源对象未发生变异的工作示例:

let state = {
  editData: {
    age: 22
  }
};

let age = "age";
let stateCopy = {editData: {...state.editData, [age]: 100}};

console.log(state);
console.log(stateCopy);