In re-frame event dispatching is handled by (dispatch [:discriminator detail]).
A corresponding (register-handler :discriminator (fn [db [_ detail]]) then
reacts to that dispatched event.
My question is how are people managing this with re-usable components? For
example, I have a tree and when selecting a node in that tree something should
happen. But this is where it gets all polymorphic as _what_ happens depends on
the client who instantiated the tree. I can see the following ways forward:
- tree is configured with a 'context' key which is combined with the
discriminator so rather than the tree emitting :node-selected it emits
:consumer-a-node-selected. Consumer a can then handle consumer-a-node-selected
and consumer b can handle (go on, guess) consumer-b-node-selected
- a variation on the above involving writing your own dispatching logic...
- tree doesn't use dispatch as the event bus, rather it takes in an instance
of a Protocol:
IRespondToTree
(on-node-select [this node])
- tree is parameterised with a map of fns {:node-selected-fn ...} etc.
How would you all handle it? (I am leaning towards the first one).
--
Note that posts from new members are moderated - please be patient with your
first post.
---
You received this message because you are subscribed to the Google Groups
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.