React Typescript:两个不同的状态正在更新



我有两个来自同一类的不同状态。

出于某种原因,两者都通过this.setState({selectedRecord: newValue}):进行更新

selectedRecord: ModelClass,
question: Array<ModelClass>,

状态question在表中用于呈现所有数据,状态selectedRecord是所选行的副本,用于通过Form修改行。

<Button type="primary" icon={<EditOutlined />} onClick={() => {
this.setState({ selectedRecord: record }, () => {
this.setState({ modalVisible: true });
});
}} />

因此,在表格中,我通过输入、复选框修改状态selectedRecord。。。并用setState完成它,但问题是这些更改也会使question状态发生变化。

您的dropdownItems已发生突变,请尝试从下拉项Temp.group = [...this.state.dropdownItems][index].group中检索数据

执行此操作时:

let Temp = this.state.selectedRecord;
Temp.group = this.state.dropdownItems[index].group;
Temp.free = this.state.dropdownItems[index].free;

您实际上修改了之前选择的记录的属性(突变(。因此,您现在使它看起来像您的下一个选定的。如果它包含对以前记录的引用,则会影响您的问题状态。

目前尚不清楚为什么您似乎首先需要检索之前选择的记录,而不是仅用例如:设置下一个记录

// No need for Temp at all
this.setState({ selectedRecord: this.state.dropdownItems[index] });

最新更新