一旦此小部件所需的数据到达,我正在尝试使用 om 显示组件。我想出了以下(大致):
(def data (atom {}))
(go (let [response (<! (http/get "../rest/ds" ))]
(reset! data (:result (:body response)))))
(om/root
(fn [app owner]
(reify
om/IInitState
(init-state [_]
(prn "(1) returning initial state now")
{:text "Hello world!"})
om/IRenderState
(render-state [this state]
(prn state) ; <-- here: not the state that I reset! before but the original state
(do-something ...))))
data
{:target (. js/document (getElementById "app"))})
尽管似乎触发了重新渲染,但state
内部似乎render-state
从来都不是我设置的。reset!
我在这里用错了吗?当直接访问它时@data
,render-state
它会显示我设置的正确值reset!
。