我在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 } });
我想念什么?
答案 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}