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

时间:2018-02-03 23:29:20

标签: reactjs local-storage

我们正在制定一个州的某些部分必须持久的计划。 Localstorage似乎是出于多种原因的完美解决方案,除了我们无法使其工作的部分。

首先,本地存储似乎总是在程序的其余部分后面更新,就像它被提供一个较旧的状态一样。 在咨询了博客的一些提示之后,我们尝试了以下方法

我们使用'setState'调用的回调更新localstorage。

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 个答案:

答案 0 :(得分:2)

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

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

它应该以这种方式更具可读性:

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