reactJs更新状态对象而不覆盖对象

reactJs update state object without overwriting the object

我在更新 this.state 中的对象时遇到问题。基本上我有一个带有多个范围滑块的表单。每次更改滑块时,我都想更新 this.state.dreadModel 对象,但我似乎只能覆盖它。

这是我目前尝试过的方法:

this.setState( update ( this.state.dreadModel, { dreadModel: { [name]: e.target.value } } ), function () {
  console.log(this.state);
});

我用上面的代码得到的错误是"Uncaught ReferenceError: update is not defined"。

我觉得我已经很接近了,但是我不能完全正确地理解语法。

哦,这是我使用的代码,每次更改滑块值时都会覆盖对象。

this.setState({ dreadModel: {[name]: e.target.value }}, function () {
  console.log(this.state);
});

如果我需要更新嵌套对象,我通常会做的更像是:

var dreadModel = {...this.state.dreadModel, [name]: e.target.value };
//or, if no ES6:
//var dreadModel = Object.assign({}, this.state.dreadModel);
//dreadModel[name] = e.target.value;
this.setState({ dreadModel: dreadModel }, function () {
    console.log(this.state);
});