Does anyone have a good pattern for handling multiple nested components 
that need to communicate with JS via ports/subscriptions?

I have a list of items, and I'm trying to allow any of these children to 
send a message through a port and receive the result back via a 
subscription. I have the outgoing port and incoming subscription wired up 
and functioning (using `Sub.batch` similarly to 
https://github.com/evancz/elm-architecture-tutorial/blob/master/nesting/4-gif-list.elm#L150),
 
but any message I get back through the port from JS land is duplicated for 
each child.

Furthermore, I can't come up with a nice way to get them tagged and 
directly properly without moving the ports up to the containing component 
and "manually" wrapping/unwrapping the commands and messages, which seems 
like an unfortunate level of coupling.

In the elm-architecture-tutorial repo, the Gif component requests a new url 
by returning a command created by `getRandomGif` 
(https://github.com/evancz/elm-architecture-tutorial/blob/master/nesting/Gif.elm#L53).
 
In the second nesting example, the only relevant place that I can see any 
mapping occurring is the usual `Cmd.map` at 
https://github.com/evancz/elm-architecture-tutorial/blob/master/nesting/4-gif-list.elm#L93.
 
Yet, when the `FetchSucceed` comes back, it is properly wrapped in a 
`SubMsg Int` message.

This seems to be exactly what I want, but I can't figure out how it works. 
How I can replicate this effect on my own or am I just barking up the wrong 
tree? Thanks!

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to