Sandi, one way to manage component to component communication is to use ports and subscriptions: https://groups.google.com/d/msg/elm-discuss/i99LBvYSkpY/yQyk6WB0AAAJ
Hope that helps. On Thursday, July 7, 2016 at 1:50:41 PM UTC-4, Sandi Dušić wrote: > > In Elm 0.16 the Architecture tutorial had one more button list example > <https://github.com/evancz/elm-architecture-tutorial/tree/e263cc04298a309251a148805ae8432130bd3821/examples/4> > (I > dug that up from an old commit), aside from this one > <https://github.com/evancz/elm-architecture-tutorial/blob/master/nesting/2-counter-list.elm>. > > Each counter would have it's own remove button which would remove that > exact one when clicked, unlike in the simpler example with a sole remove > button that removes the first counter. This was accomplished by passing two > addresses to the counter view, one for it's own actions and another which > it's father component (CounterList) handled, used for signaling removal. > > I did the exact same thing in my application. I have a bunch of small > components in a big component, and the big component needs to know when one > of the small ones has been clicked. How do you do this in 0.17? Is it > impossible, since they removed the example which is supposed to implement > it? > > This is the only thing I can think of: Add the message that needs to be > sent upwards to the big component to the message union of the small > component (in the CounterList, this would mean Counter.Msg has Remove). > When the big component gets a small component action, it would first check > with an if whether it's the one it needs to handle (if msg == > Counter.Remove then ...). If so, it can handle it (remove the Counter), > otherwise it would just regularly pass it to Counter.update. > > To me that seems like it goes against the principles of Elm Architecture. > You can no longer treat components (and especially their actions) like > black boxes, but rather you have to tear them apart in a way. They cannot > fully define their interface. I don't know, it's just weird. > > If there's a way to define custom subscriptions they might be leveraged to > solve this, but I don't see a way to do that in the API. I apologize if > this is a silly question, 0.17 is still new to me. > -- 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.
