Reactjs 试剂-仅在装入父函数后调用父函数

Reactjs 试剂-仅在装入父函数后调用父函数,reactjs,clojurescript,reagent,Reactjs,Clojurescript,Reagent,我不确定如何做以下事情 我有一个父div-子[s]预组件关系,如下所示 (defn hello-world [] (let [app-state (r/atom {:nums [1 2 3 4]}) observer (atom nil) observe-me (fn [dom] (when dom (. @observer observe dom)))] [:

我不确定如何做以下事情

我有一个父div-子[s]预组件关系,如下所示

(defn hello-world
  []
  (let [app-state (r/atom {:nums [1 2 3 4]})
        observer (atom nil)
        observe-me (fn [dom]
                     (when dom
                       (. @observer observe dom)))]
    [:div {:ref (fn [dom]
                  (let [o (js/IntersectionObserver.
                           (fn [e _] (rdbg/log e))
                           {:root dom
                            :threshold [0 1]})]
                    (reset! observer o)))}
     (for [e (:nums @app-state)]
       ^{:key e} [:pre {:ref observe-me} e])]))
考虑到组件首先装入层次结构子级,然后装入父级的方式,调用observeme会导致@observator为null,因为尚未调用父div的ref回调

我想

安装父级时设置观察者 观察者应该观察第一组子DOM元素 每次在我的例子中添加一个新的子元素,每当修改应用程序状态时,我都希望观察它们的DOM元素FYI,.observe函数&IntersectionObserver构造函数需要一个DOM元素,这就是依赖ref回调的原因