javascript - ReactJS 改变状态对象内的对象属性

标签 javascript reactjs

我得到一个对象作为 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/

相关文章:

reactjs - 如何在库组件和我的应用程序组件之间共享上下文?

javascript - 将修改后的 json 从 View 发送到 Controller

javascript - 覆盖默认警报和确认框

javascript - 从单选按钮读取 Angular Controller

javascript - getImageData 跨源错误

javascript - React Native - 需要循环

javascript - 使用 JavaScript 更改为页面添加书签时使用的 URL

reactjs - 类型 'hot' .ts(2339) 上不存在属性 'NodeModule'

reactjs - React Navigation 5,登录后阻止返回导航

reactjs - 在 useEffect() 内部使用 useDispatch() 时,操作似乎不会立即调用