2016-02-03 70 views
1

在我的redux应用程序中,我有一些设置应该在它们更改(如JSON文件)并加载应用程序(以填充商店初始状态)时保留到磁盘。如何将某些还原存储属性保存到磁盘?

我猜应用程序设置是状态,所以他们属于商店。然后我有修改设置的操作,如SETTINGS/CHANGE,有效负载为{name:'settingName', value: 'settingvalue'}或细粒度为SETTINGS/UNITS,有效负载为'metric''imperial'

现在我需要拦截某些状态更改/操作提交并将它们作为序列化JSON持久化到磁盘。这是什么settings减速机应该做自己或更好的某种中间件,可以在后台执行这种异步?

在代码中看起来如何?

+2

有,你可以看看的https://github.com/michaelcontento/redux-storage中间件,它做同样的事情,但对于localStorage。 – krs

+0

看起来像我一直在寻找。将试一试 – philk

+0

可能的重复[在哪里写入到Redux应用程序localStorage?](http://stackoverflow.com/questions/35305661/where-to-write-to-localstorage-in-a-redux- APP) –

回答

1

您可以使用localStorage API作为krs说。小心,因为它只允许字符串值,所以你可能需要存储在他们面前的字符串化的对象:

var config = { 
    foo: 'foo', 
    bar: 'bar' 
} 

// Store: 
localStorage.setItem('config', JSON.stringify(config)); 

// Get 
JSON.parse(localStorage.getItem('config'));