I went digging and the code where I set local state to cursor data was
actually old code and I was missremembering it :-)
All of my new code does actually strictly separate the two mechanisms so
that app state refers to the domain data (the what) and local state refers
to the state of widgets (the how). So there actually isn't any natural
overlap.

As for Alans question, I've reread it a few times and I'm not sure I
understand what you're trying to achieve.

make-animations should be able to work with (:circles cursor) without
knowing or caring if it gets given a cursor or not - cursors are quite
transparent.

Are you trying to detect if the cursor has changed from one update to the
next?

If yes then you can compare your current cursor to the previous one in
will-receive-props by doing (when-not (= (om.core/get-props owner)
next-props) (cursor-has-changed)) or in did-update using (when-not (=
next-props data) (cursor-has-changed)) where data is your cursor.
Use the former if you want to do this before render and the latter if
after.  Note that if you modify local state in did-update you will trigger
a rerender potentially causing a render loop (but if you only do this when
your cursor data has changed, it's not a problem because the second time
the conditional will be false).

Hope that helps.
Alan, if you haven't read this page, it's very helpful:

https://github.com/swannodette/om/wiki/Cursors

Jamie
On Sep 3, 2014, at 3:21 PM, Alan Shaw <[email protected]> wrote:

Ahhhhhh thanks!
2014/9/3 上午11:48 於 "David Nolen" <[email protected]> 寫道:

> It is not. Use om.core/value
>
> On Wed, Sep 3, 2014 at 2:29 PM, Alan Shaw <[email protected]> wrote:
> > So it is OK to take (.-value cursor) in render-state?
> >
> > --
> > 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.

Reply via email to