On Sun, Jan 12, 2014 at 11:51 PM, Conrad Barski <[email protected]> wrote:

> Hi, I'm trying to store an array of data in Om state and instantiate a
> child component with it by indexing into the array (by passing the derived
> cursor into the child component.)
>
> However, I don't get a cursor when I do this:
>
>  (def x (om/to-cursor {:foo [1 2]}))
>
>  (om/cursor? (:foo x)) ==> true
>
>  (om/cursor? ((:foo x) 0)) ==> false
>
> Does anyone know why an array lookup doesn't yield a cursor in this case?
> Is there something conceptually I'm missing? If this is how it's supposed
> to work, how do I create an array of Om components out of an array of items
> in the state?


If you look at the Om source you'll see that only Maps and IIndexed have
real cursor conversions by default. Implementers of ICloneable can also be
converted into cursors. So if the following comes first your code will work:

(extend-type number
  ICloneable
  (clone [n] (Number. n))

However React does not render Number & String Objects properly as children,
so you will need the following:

(dom/div nil (om/value n))

If n is a number cursor.

David

-- 
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