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

8
我们正在开发一个程序,其中一些状态需要持续存在。本地存储似乎是许多原因的完美解决方案,唯独我们无法使其正常工作。
起初,本地存储似乎总是滞后于程序的其他部分更新,就好像它得到了旧状态。在参考了一些博客的建议后,我们尝试使用以下方法:
我们在“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));
   }

然而,这段代码似乎并没有向本地存储提供任何值。有人知道我们做错了什么吗?


1
你能展示一下如何初始化this.localStorage吗? - Fabian Schultz
1
哦,我的天啊。就是这样。我们移除了“this”,函数又可以正常工作了。我会点赞你的回答,同时坐在角落里戴着我的耻辱帽。 - Jasper
1个回答

5

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

另外,我会移除你在 setState 回调函数中的箭头函数,因为你没有向 this.saveLocal() 传递任何参数。

这样写更易读:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接