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

时间:2016-08-11 19:56:18

标签: reactjs react-jsx

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

这是我到目前为止所尝试的:

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

上面代码中出现的错误是“Uncaught ReferenceError:未定义更新”。

我觉得我非常接近,但我不能很好地理解语法。

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

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

1 个答案:

答案 0 :(得分:-1)

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

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);
});