 
             prev-patterns (.-re$dbPatterns this)]
         (when-not (= prev-patterns patterns)
-          (when-let [un-sub (.-reactiveUnsubscribe this)] (un-sub))
-          (set! (.-reactiveUnsubscribe this) (when-not (empty? patterns)
-                                               (d/listen patterns #(force-update this))))
+          (some-> (.-re$onUnmount this)
+                  (get :reactive-render)
+                  (.call this this))
+          (on-unmount! this :reactive-render
+                       (when-not (empty? patterns)
+                         (d/listen patterns #(force-update this))))
           (set! (.-re$dbPatterns this) patterns))
         value))))
 

  [component]
  (not (true? (gobj/get component "unmounted"))))

(defn- wrap-props
  "Wraps :on-change handlers of text inputs to apply changes synchronously."
  [props tag]

  [this]
  (apply dissoc (get this :view/props) (get-in this [:spec/props :props/consumed])))

(def is-react-element? v-util/is-react-element?)