   (d/transact! db [{:id         this
                     :prev-state (d/get @db this :state)
                     :state      new-state}])
-  (when-let [will-receive-state (.-componentWillReceiveState this)]
+  (when-let [will-receive-state (js-get this "componentWillReceiveState")]
     (.call will-receive-state this))
   (when (and *trigger-state-render*
              (mounted? this)
-             (.call (.-shouldComponentUpdate this) this (.-props this) nil))
+             (.call (js-get this "shouldComponentUpdate") this (d/get @db this :props) nil))
     (force-update this)))
 
 (defn update-state! [this f & args]

   (fn [get-initial-state-fn]
     (fn []
       (this-as this
         (let [initial-props (expand-props this (.. this -props -cljs$props))
               initial-state (merge (when get-initial-state-fn (get-initial-state-fn this initial-props))
                                    (initial-subscription-data this initial-props))]
           (d/transact! db [{:id         this
                             :props      initial-props
                             :view-id    (or (:view-id initial-props) (:id initial-props))
                             :children   (.. this -props -cljs$children)
                             :state      initial-state
                             :prev-state initial-state}])))))


;; Lifecycle method handling

(defn expand-props [this props]
  (cond->> props
           (js-get this "expandProps") (js-call this "expandProps")))

(defn initial-subscription-data
  "If component has specified subscriptions, initialize them"
