我们正在制定一个州的某些部分必须持久的计划。 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));
}
然而,这段代码似乎根本没有为本地存储提供任何价值。有没有人知道我们做错了什么?
答案 0 :(得分:2)
您应该只使用localStorage
而不是this.localStorage
。
另外,我会在setState的回调中删除你的箭头函数,因为你没有将任何参数传递给this.saveLocal()
。
它应该以这种方式更具可读性:
this.setState(
{ selection: this.state.selection.concat(shop_item) },
this.saveToLocal
);