首页 > 解决方案 > ReactJS:使用 setState 更改对象属性的值

问题描述

我在 costructor 中有以下代码:

this.state = {
              messageBox: { open: false, title: 'title', content: 'content', onConfirm: function() {console.log('confirm')}, onCancel: function() {console.log('cancel')} },
            };

现在我只想open用 setState 改变属性。我怎样才能做到这一点?

标签: reactjsobjectconstructorstatesetstate

解决方案


使用展开运算符 (ES6)

this.setState({ messageBox: { ...this.state.messageBox, open: true } });

使用Object.assign

this.setState({ messageBox: Object.assign({}, this.state.messageBox, { open: true } ) });

推荐阅读