React - 将状态保存到本地存储

Posted

技术标签:

【中文标题】React - 将状态保存到本地存储【英文标题】:React - saving state to local storage 【发布时间】:2018-07-14 03:54:53 【问题描述】:

我们正在开发一个程序,其中某些部分的状态必须是持久的。由于许多原因,Localstorage 似乎是完美的解决方案,除了我们无法使其工作的部分。

起初,本地存储似乎总是落后于程序的其余部分进行更新,就好像它被提供了一个较旧的状态。 在咨询了博客中的一些提示后,我们尝试了以下方法

我们使用“setState”调用的回调来更新本地存储。

this.setState(
    selection: this.state.selection.concat(shop_item) ,
    () => 
      this.saveToLocal();
    
);

'SaveToLocal'函数如下:

saveToLocal() 
       const local = this.state.favourites;
       this.localStorage.setItem(‘saveFavorites’, JSON.stringify(local));
   

然而,这段代码似乎根本没有为 localstorage 提供任何价值。有谁知道我们做错了什么?

【问题讨论】:

你能展示你如何初始化this.localStorage吗? 天哪。就是这样。我们删除了“this”,该功能再次起作用。我会支持你的回应,坐在角落里,戴着我的耻辱帽。 【参考方案1】:

您应该只使用localStorage 而不是this.localStorage

另外,我会删除 setState 回调中的箭头函数,因为您没有将任何参数传递给 this.saveLocal()

这样应该更易读:

this.setState(
   selection: this.state.selection.concat(shop_item) ,
  this.saveToLocal
);

【讨论】:

以上是关于React - 将状态保存到本地存储的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 Redux 的情况下将状态保存在本地存储 React 中?

无法将数据保存到 React 中的本地存储

在 angular/ngrx 应用程序中将状态保存到本地存储的逻辑的位置

如何创建 POST 请求以从本地路径将文件存储在服务器上 - React Native

在 React 中,将获取的 Firebase 数据存储在本地还是全局状态?

将 redux 嵌套状态更改持久化到本地存储