我们如何将prevState数据存储到一个变量中,以便在api调用期间发生任何错误时,我们可以恢复发生的更改



我有一个切换按钮,在点击后切换数据,之后调用api在数据库中进行必要的更改。因此,如果api最终出现错误,我希望恢复在UI中发生的更改。我怎样才能做到这一点?

当前尝试这样做

#global variable
let prevData={}
#Set State
(data)=>{ 
this.setState(prevState=>{
this.prevData=prevState.data
return {
data:data
}}}

这个如果我控制台日志prevData它给出更新的状态数据而不是prevData

经过一番搜索发现

JSON对象可以创建一个对象的分离副本,这样就不会随着状态的变化而改变数据。

this.prevData=JSON.parse(JSON.stringify(this.state.data)) 

有多种创建副本的方法,这似乎更容易理解。

相关内容

最新更新