我得到一个对象作为 get 的响应。
现在我将对象分配给状态变量(对象),如下所示:
this.setState({editData: response.data})
有没有办法改变这个对象内的值?
我想到了这样的事情:
this.setState({editData.[var]: [value]})
谢谢
最佳答案
首先你必须记住,你不应该直接改变状态对象。因此,首先您应该复制状态对象并更改该副本。然后将此副本设置为状态。您可以使用扩展语法来实现它:
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);
关于javascript - ReactJS 改变状态对象内的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44158028/