Comments (4)
Hi @skulptur
I think there can be a better solution over exporting createHandlerMap
in public API and it's a plugin system which has discussed in #45 and will discuss in more details in #63
As an overall example for your above scenario it could be something like below:
const testReducer = createReducer(defaultTestState, handleAction => [
handleAction.thunk({
start,
cancel,
error,
complete,
// ...
})
])
If you are interested in the plugin system it would be great to have you in #63.
from deox.
Also, there is a minor relation with #2
from deox.
Your code sample above is very similar to what my function already does. I copy-pasted createHandlerMap
into my project temporarily while this issue is open. The only difference between what I have and what you demonstrated is that a plugin system makes it go through the library.
However, my function above is only part of my solution. I actually have a function that encompasses a createThunk
and the handleThunk
function, and returns the actions and the handlers. I then spread the handlers in my createReducer
and export the actions. I never need to manually connect the actions to the handlers, which I would still have to do with the proposed plugin system.
We can discuss more about this in #63 if you want, but I thought I'd bring up this very common scenario where you want to generate actions + handlers all at once. Right now I'm doing this for my async thunk, but you could do this for a lot of things like setting up a flag in your store with the proper on/off actions and handlers.
I'm coming to Deox from easy-peasy. Check out the helper section of the readme there. Because easy-peasy is completely based on simple objects, you have actions and reducers as the same thing and this particular scenario is really easy to accomplish. Now it had some other annoyances specially with typescript, that's why I switched.
from deox.
If anyone has any opinion on this topic please let us know.
from deox.
Related Issues (20)
- handleAction allows you to return a state object with any additional properties HOT 3
- 2.1.2 breaking change on ActionCreator type HOT 4
- The automated release is failing 🚨
- The automated release is failing 🚨 HOT 1
- ofType does no longer automatically infer action type from general source in pipe HOT 6
- createAction with only a type parameter results in function, which allows any arguments HOT 5
- Failed to resolve 'rxjs/operators' HOT 2
- Explain or remove `resolve => x => resolve(x)` pattern HOT 1
- Create polymorphic (generic) action creator HOT 2
- ESLint explicit-function-return-type rule error HOT 4
- Bundle size notes HOT 5
- Add "default" section in createReducer() HOT 4
- The automated release is failing 🚨
- Why was Deox deprecated? HOT 1
- The automated release is failing 🚨 HOT 1
- Prototype pollution in immer dependency HOT 2
- The automated release is failing 🚨
- Add Payload type utility HOT 1
- Is there a way to create request action generator? HOT 7
- Looking for a maintainer...
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 deox.