That's how I'm currently doing it, yes. I'm sure there are many other ways that work just as well too.
On 12 April 2014 19:49, Dmitry Suzdalev <[email protected]> wrote: > Thanks, will keep this in mind. Am I understanding correctly that when B > modifies Y it communicates that change to A through the channel which is in > :shared state? > > > On 12 April 2014 20:49, Daniel Kersten <[email protected]> wrote: > >> Yes, the multiple cursors solution works quite well with the caveat that >> intermediary components must make sure not to discard parts of the cursor >> that lower components need. >> >> Another approach that is working well for me as a temporary solution is >> to store this information in local state and using async channels to >> notify. For example: component A accesses path X through its app state but >> also needs path Y. Component B accesses path Y. When component B modifies >> Y, it also sends the change over an async channel to component A, which >> stores it in its local state. >> >> When David releases the solution, I can replace the local state access >> with the solution and delete the channel. >> >> >> On 12 April 2014 16:13, Dmitry Suzdalev <[email protected]> wrote: >> >>> Understood. >>> Well, after reading through this thread, I see that >>> >>> a) David is working on a solution to this problem, which will deliver >>> both convenience and auto updates >>> b) for now there's an option to pass multiple cursors to the component >>> (there's an example in Om's wiki, on 'Cursors' page) >>> 12 апр. 2014 г. 18:28 пользователь "Daniel Kersten" <[email protected]> >>> написал: >>> >>> Ah, yes, I meant shared state. The reason I was saying shared and not >>>> app is that app state usually gets "narrowed" the lower in the component >>>> tree you get, so when your low down in the tree and then need to access >>>> something on a completely different branch, how do you do this without >>>> accessing the root app state (which I was storing in :shared so that >>>> components can access it without global knowledge)? >>>> >>>> But perhaps I'm still thinking about it wrong. Would love to hear your >>>> thoughts. >>>> >>>> >>>> On 12 April 2014 14:54, Dmitry Suzdalev <[email protected]> wrote: >>>> >>>>> Ok :) If you are talking about :shared state, than it's true, but for >>>>> the generic case of the global app state, auto updates are supposed to >>>>> work >>>>> regardless of which part of the state cursor points to AFAIK. >>>>> 12 апр. 2014 г. 17:37 пользователь "Daniel Kersten" < >>>>> [email protected]> написал: >>>>> >>>>> I think perhaps I was misunderstanding how cursors work. Let me try >>>>>> it out and get back to you then :) >>>>>> >>>>>> >>>>>> On 12 April 2014 12:25, Dmitry Suzdalev <[email protected]> wrote: >>>>>> >>>>>>> Hi Daniel! >>>>>>> >>>>>>> Can you clarify this moment a bit for me: >>>>>>> >>>>>>> On Wednesday, April 9, 2014 2:33:31 PM UTC+4, Daniel Kersten wrote: >>>>>>> > I can pass the entire app state to each component (perhaps trough >>>>>>> shared state) and use transformation functions (similar to what Sean >>>>>>> Grove >>>>>>> did in his recent slides) to transform the state into a local view for >>>>>>> each >>>>>>> component. This means each component gets to select exactly what it >>>>>>> needs >>>>>>> to access without worrying about what comes before or after it in the >>>>>>> hierarchy, but then you lose the benefit of cursors and automatic >>>>>>> re-rendering when something changes. >>>>>>> >>>>>>> Why do you say that in this case "automatic re-rendering when >>>>>>> something changes" is being lost? Not clear to me, it seems working ok >>>>>>> for >>>>>>> some of my components which get passed a 'whole' app state... I'm >>>>>>> interested to know if I maybe miss something here :) >>>>>>> >>>>>>> Dmitry. >>>>>>> >>>>>>> -- >>>>>>> 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. >>>>>>> >>>>>> >>>>>> -- >>>>>> 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. >>>>>> >>>>> -- >>>>> 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. >>>>> >>>> >>>> -- >>>> 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. >>>> >>> -- >>> 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. >>> >> >> -- >> 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. >> > > -- > 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. > -- 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.
