2016-02-03 71 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'));