The reason this is not working is because you are explicitly ignoring
the first (what would be the cursor) argument to your component, so
neither transact!/update! (which works on your cursor, not local
component state) or set-state!/update-state! (which is applied to local
component state--what you retrieve with get-state) will work.
On a more conceptual level I would recommend keeping application
data--which stuff like "domain" and "customer-info" most certainly
are--in your cursor (a.k.a. "app data" a.k.a. the first arg to
component) vs. in your state. This will solve a number of your problems.
DD
(2014/05/04 23:33), Roger Gilliar wrote:
> My component looks like this:
>
> (defn- domain-data [_ owner]
> (reify
>
> om/IInitState
> (init-state [_]
> {:domain nil})
>
> om/IWillMount
> (will-mount [state]
> (th/poll @chan (fn[data] (om/set-state! owner :domain data)))) ;; sets
> the state with a selected domain
>
> om/IRenderState
> (render-state [this state]
> (if-let [domain (:domain state)]
> (dom/div nil
> (om/build header/header-comp domain)
> (om/build (customer-info/create update-chan) (get-in state
> [:domain :customer-info])))
> (dom/span nil "")))))
>
> It seems that (get-in state [:domain :customer-info]) doesn't create a
> cursor. Because some lines down the source I get
>
> No protocol method ITransact.-transact! defined for type
> cljs.core/PersistentArrayMap
>
> as soon as I try to call
>
> (om/transact! app-state assoc key value); app-state is the result of the
> get-in call
>
> BTW:
>
> The customer-info/app-state may look like this:
> {:customer-nr "12332233", :customer "a company", :ip "122.122.1.23",
> :description "database server"}
>
>
>
>
--
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.