Comments (3)
After a few more minutes of thought, I can pretty easily write an engine (or decorator, or whatever the terminology should be) that does what I expected the merger to do...
const merge = (...engines) => ({
load() {
engines.forEach(e => { e.load(); });
},
save(state) {
engines.forEach(e => { e.save(state); });
}
});
from redux-storage.
The job of a merger in redux-storage is to merge (hence the name 😄 ) the current state with state loaded from the engine (see https://github.com/michaelcontento/redux-storage/blob/master/src/reducer.js#L8).
Thus a merger would not be the right place to handle multiple engines. The best way would be to create a new engine, as it would be able to handle both load
and save
operations. A rough API could look something like this:
import createEngineLocalstorage from 'redux-storage-engine-localstorage';
import createEngineRouter from 'redux-storage-engine-router';
const engine = createEngineRouter({
user: createEngineLocalstorage('userState'),
todos: createEngineLocalstorage('todosState'),
__default__: createEngineLocalstorage('defaultState')
});
In this, very very rough, API we simply pass a object to our new router-engine which serves as a routing layer. state.user
would be stored in the localStorage key userState
, state.todos
in todosState
and every other property of state
in defaultState
.
Does this answer your question? If so, please close this issue 😄
from redux-storage.
I'll go ahead and close this issue now, as it seems to be inactive / solved. Feel free to reopen if this issue still exists!
from redux-storage.
Related Issues (20)
- setTimeout around engine.save HOT 6
- Dispatch REDUX_STORAGE_SAVE only when state has been really changed. HOT 9
- This repo should be monorepo HOT 1
- Memory only storage engine HOT 1
- need offline-first example HOT 1
- Why [REDUX_STORAGE_LOAD] change the state? HOT 2
- RFC add a CLEAR action HOT 13
- Can't use redux-storage in react-boilerplate anymore HOT 4
- When loading state on app init I get data from different app HOT 4
- State is not updating on load HOT 13
- How do you deal with app updates? HOT 3
- This is great. HOT 1
- How to only persist certain parts of state? HOT 3
- State lost when browser refreshed more than once HOT 4
- Failed to load previous state. HOT 3
- es6 / rollup / require is undefined HOT 4
- Date being SAVEd is not fully the same data being LOADed. HOT 6
- Uncaught (in promise) TypeError: dispatch is not a function
- Not all actions are being saved.
- Redux 4.0 support? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from redux-storage.