它不是特别漂亮,但我认为这是你用ES6做的最好的:
configOptionChange({ key, value }) { this.setState({ ...this.state, deployOptions: { ...this.state.deployOptions, [key]: value } }); }
它基本上等同于您自己的Object.assign
解决方案,但使用ES6 spread(...
)运算符(以及参数解构以获得良好的衡量标准).
这是第二种选择,不是很聪明,但对我来说感觉更清洁:
configOptionChange({ key, value }) { const { deployOptions: prevDeployOptions } = this.state; const deployOptions = { ...prevDeployOptions, [key]: value }; this.setState({ ...this.state, deployOptions }); }