Thanks, here's code that demonstrates the problem. It's your code with two 
modifications: "edit" is in component local state, not app state. And I have a 
button to change that state. In the :opts version below, this :opts doesn't 
appear to pass on the new value of :edit. If I use :state instead, it does:

(ns opts-test.core
  (:require [om.core :as om :include-macros true]
            [om.dom :as dom :include-macros true]))

(enable-console-print!)

(def app-state (atom {:foos ["foo" "bar" "baz"]}))

(defn row [value owner {:keys [edit]}]
  (reify
    om/IRenderState
    (render-state [_ _ #_{:keys [edit]}]
      (dom/div nil
        (dom/h1 nil (str edit))))))

(om/root
 (fn [{:keys [foos]} owner]
   (reify
     om/IInitState
     (init-state [_]
       {:edit false})
     om/IRenderState
     (render-state [_ {:keys [edit]}]
       (apply dom/div nil
              (dom/button #js {:onClick #(om/set-state! owner :edit true)} 
"edit")
              (om/build-all row foos {:opts {:edit edit}})))))
 app-state
 {:target (. js/document (getElementById "app"))})

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