我试图更新一个模式内的people
阵列。如果用户点击取消按钮,当我点击“打开模式”时,它会将状态人员数组恢复为其先前的值。
因此,基本上,我所做的是在单击打开模式按钮时,将人员数组分配给另一个名为cachedPeople this.setState({ visible: true, cachedPeople: this.state.people })
的变量。
“奔的更改年龄”按钮有此onPress:
onPress={() => {
const newPeople = [...this.state.people];
newPeople[2].age = 20;
this.setState({
people: newPeople,
});
}}
和取消我设置人阵cachedPeople
this.setState({ visible: false, people: this.state.cachedPeople });
但this.state.cachedPeople
值也成为this.state.people
更新值之前单击取消按钮因此恢复不会发生我不知道这是怎么回事
我试过了远远是将它保存在this.cachedPeople
而不是状态,但仍然发生。
继承人的示例代码要点:https://gist.github.com/damathryx/4a379d3c8919ee6431ee79b7a58426c9
如果你这样做上述方式会发生什么?本仍然保持在20? – 82Tuskers
@ 82Tuskers谢谢!更新了gif和细节。 – Damathryx