如何在React中更改状态对象内键的状态?

时间:2019-11-25 19:13:26

标签: javascript reactjs

我在React.Component类中处于以下状态:

this.state = {
  stuff: {
    stuffData: [],
    loading: true,
  },
  moreStuff: {
  ...
  }
}

在函数内部,单击按钮后,我想将stuff的状态更新为loading

如果我按以下方式操作,它将起作用:

const { stuff } = this.state;
const newStuff = stuff;
newStuff.loading = true;
this.setState({ stuff: newStuff };

但是我想这样做(没有得到预期的结果):

const { stuff } = this.state;
this.setState({ stuff: {loading: true, ...stuff } });

我想念什么?

1 个答案:

答案 0 :(得分:1)

首先复制对象,然后更改要更改的值。

const { stuff } = this.state;
this.setState({ 
   stuff: {
       ...stuff, 
       loading: true 
   } 
});

因为 如果rest = {a:2, b:3}

  • {a: 1, ...rest}将给您{a:2, b:3}

  • {...rest, a: 1}将给您{a:1, b:3}