我試圖更新一個模式內的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