2016-08-04 245 views
3

我正在使用react和redux for我的SPA,我想在本地存储一些数据。我需要将appState与localstorage同步,因此在刷新页面后我的数据不会丢失。请帮帮我。我对于react和redux是全新的,并且没有太多的理解发生了什么,但是我认为redux为我创建了整个应用程序的状态,所以我不能仅仅将我的状态与本地存储绑定在应用程序组件中,只是状态的组件,而不是我的应用程序。 (一些很好的教程,可以帮助我了解应用程序的生命周期。)LocalStorage与react-redux

回答

2

我建议使用以下命令将数据存储在本地存储中。

坐落在localStorage的数据可以使用以下命令来完成:

localStorage.setItem('nameForData', variableNameForData);

在需要时检索数据。

var variableNameForData = localStorage.getItem('nameForData')

从localStorage的删除数据:

localStorage.removeItem('nameForData')

这些通常会被把里面的动作制作者与调度改变一些布尔跟踪与localStorage的应用程序交互的状态。

例如,在创建本地存储时,您可能会将状态设置为true。

在刷新时,您可能会调用一个动作创建器来检查本地存储是否存在,如果它确实将该布尔值设置为true或者它不存在,则返回创建本地存储并将其设置为true。

您可以将此函数放在componentWillMount(){}中,它将在组件第一次呈现时被调用,因此在刷新的情况下会被调用。

Docs for component life cycle and specifically componentWillMount here

Docs for local storage here

+0

感谢答案中间件。我很高兴没有像redux-localstorage这样的额外模块是可能的。 –

1

我可以建议你到状态存储每个动作之后。为此,您可以使用仅存储整个状态对象的localStorage中间件的

然后在您的createStore部分,您将从localStorage API检索initialState

在你不需要修改任何组件的情况下,从探微的的localStorage的初始化状态,从而节省国家