我得到一个对象作为get的响应。
现在我将对象分配给状态var(object),如下所示:
this.setState({editData: response.data})
有没有办法更改此对象中的值?
我想到了这样的事情:
this.setState({editData.[var]: [value]})
感谢
答案 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);