我有以下代码,我认为我在做一些根本错误的事情。
(defn world-view [data owner opts]
(reify
om/IInitState
(init-state [_]
(om/update! data #(assoc % :world vec)))
om/IWillMount
(will-mount [_]
(go (let [world (<! (get-world (:dimensions opts)))]
(log (get-in world [9 9]))
(om/update! data #(assoc % :world world)))))
om/IRender
(render [this]
(log (get :world data))
(apply dom/table nil
(om/build-all row (:world data))))))
我正在om/IWillMount
进行远程ajax调用,如下所示:
om/IWillMount
(will-mount [_]
(go (let [world (<! (get-world (:dimensions opts)))]
(log (get-in world [9 9]))
(om/update! data #(assoc % :world world)))))
我期待从远程调用返回2d向量,这是有效的,因为我可以使用
记录数组的元素(log (get-in world [9 9]))
然后我使用om/update
来更新数据结构。
但是当调用render时,数据似乎没有更新,我可以通过尝试记录数据结构来测试它
log (get :world data))
这没有记录任何内容。
我无法看到我做错了什么或数据结构未更新的原因。