Comments (3)
There's nothing wrong with the idea, but I won't implement it. Closing.
Why?
- it is generally better if there is only one way of doing things (Eg. I regret putting the syntax sugar for subscriptions into re-frame core)
- there's already a couple of ways you can implement this choice yourself already (in not much more than 10 lines of code):
- write and use an interceptor
- write and use your own version of
reg-event-fx
from re-frame.
BTW, here's what I mean by an interceptor that does the job (untested):
(def wrap-effects
(re-frame.core/->interceptor
:id :wrap-effects
:after (fn [context]
(assoc context :effects {:fx (:effects context)})))) ;; <-- wrap existing effects in a map like this {:fx <existing>}
Then, write your own version of reg-effects-fx
to install this wrap-effects
interceptor immediately before the event handler is called (my code below is based on existing code for reg-effects-fx
here)
(defn reg-event-fx2 ;; <-- my new name
([id handler]
(reg-event-fx id nil handler))
([id interceptors handler] ;; vvvvvvvvvvvvv
(events/register id [cofx/inject-db fx/do-fx std-interceptors/inject-global-interceptors interceptors wrap-effects (fx-handler->interceptor handler)])))
;; ^^^^^^^^^^^^^
(also untested)
Notice the use/placement of wrap-effects
from re-frame.
That's neat, I will try that.
"I regret putting the syntax sugar for subscriptions into re-frame core". I just saw that expansion of syntactic sugar in 1.3 and thought this idea was in line with that. It's interesting to hear you already regret that change.
from re-frame.
Related Issues (20)
- File handling and working with Blobs
- can i define multiple reframe db to implement fsm?
- [Enhancement]: Allow nil to be used as a value for :fx HOT 5
- [Enhancement]: Warn on `subscribe` being used outside of a reactive context HOT 3
- [Enhancement]: Allow enrich to return `nil` HOT 7
- [Enhancement]: Allow subscribe to be safely called from anywhere
- [Enhancement]: Add the UseASubscriptionInAJsEvent page to the FAQs menu in the docs HOT 1
- [Bug]: de-referencing re-frame.db/app-db inside subscription counts as changing data? HOT 1
- [Bug] [Docs]: Simple app example docs out of sync with code in repo
- [Bug]: CSS link path changing with URL HOT 1
- [Enhancement]: Adding syntax sugar :<= for input subscriptions taking the same query vectors. HOT 2
- [Bug]: fix examples projects lockfiles warning HOT 2
- [Enhancement]: Warning on re-registering subs / events (ie name collision detection) improvements HOT 4
- [Bug]: Multiple usage of the same standard interceptor creator in global doesn't work HOT 2
- [Enhancement]: Subscriptions that return `nil` or `false` are evaluated regardless of what's in cache HOT 3
- Wenn ich etwas vom Planeten entferne oder davon etwas abbauen, muss ich auch etwas wieder zurückführen damit es im Gleichgewicht bleibt! HOT 1
- [Bug]: Reframe 10x is not being opened with ctrl+h after 1.6.0 HOT 1
- [Enhancement]: Upgrade React dependency to React 18 HOT 3
- Steigende Preise: Die einzige Lösung hier erklärt... HOT 1
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 re-frame.