React setState是覆盖状态

时间:2019-02-13 21:17:21

标签: reactjs

我有一个带有一个名称输入字段的表单,它的onChange方法具有以下代码:

    onChangeUpdateForm(e) {
    this.setState({
        currentService: {
            [e.target.name]: e.target.value
        }
    })
};

我想用新值更新currentService的名称,但是状态中的所有内容都会被覆盖。如何更新处于状态的对象的单个值?

1 个答案:

答案 0 :(得分:3)

  

我想用新值更新currentService的名称,但是状态中的所有内容都会被覆盖。

因为要替换整个对象。试试这个:

this.setState({
    currentService: {
        ...this.state.currentService,
        [e.target.name]: e.target.value
    }
});