【发布时间】:2019-04-30 23:29:28
【问题描述】:
在我的组件状态中更改嵌套对象的多个属性值时,我正在尝试应用最佳实践。
我的组件代码目前如下所示:
class App extends Component {
state = {
object: {
a: 10,
b: 7,
c: 12,
}
}
render() {
return (
<div>
<button onClick={this.setState({ object: { a: 5 }})}>change value a </button>
<button onClick={this.setState({ object: { b: 2 }})}>change value b </button>
<button onClick={this.setState({ object: { c: 3 }})}>change value c </button>
</div>
<p>{this.state.object.a}</p>
<p>{this.state.object.b}</p>
<p>{this.state.object.c}</p>
);
}
}
在单击任何按钮之前,您会在页面上看到三个按钮,后面是 10、7 和 12 的段落。
一旦我单击第一个标记为“更改值 a”的按钮,值 b 和 c 在我的组件状态对象中被破坏,这导致仅显示 5 的值。如果我点击第二个按钮,那么只有2 会显示并且支持a 和c 消失了。
我了解这种行为,但我想知道解决它的最佳方法。我想保留它,以便显示所有值,并能够在其他值保留时以任何顺序更新它们。
我也很确定我正在直接改变状态,我知道这是不好的做法。我只是不知道在这种情况下正确的做法。
【问题讨论】:
标签: javascript reactjs