修改嵌套状态无法更新

时间:2019-05-06 17:30:55

标签: javascript reactjs

为什么setState对我不起作用?

在更改事件中,我正在为数组设置状态。

handleonChange(x) {
    var newArray = ['Hello', 'Dear'];

    const clonedState = Object.assign({}, this.state);

    clonedState.trans.value = x;
    clonedState.accList = newArray

    this.setState(clonedState);
}

它更新trans.value,但accList未设置。

1 个答案:

答案 0 :(得分:2)

为什么不只是尝试使用这种语法设置状态(这样,您就不必克隆对象,只需声明要如何改变状态)

this.setState(previousState => {
  trans:
    {
      ...previousState.trans,
      value: x,
    },
  accList: newArray
});