OM - Ajax呼び出し後にデータが更新されない
-
21-12-2019 - |
質問
私は次のコードを持っています、そして私は基本的に間違って何かをしていると思います。
(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
を使用してデータ構造を更新します。
しかしレンダリングが呼び出されると、データが更新されていないように見えない、データ構造を記録しようとすることでこれをテストできます。
log (get :world data))
.
これは何も記録されません。
私が間違っていることやデータ構造が更新されていない理由はわかりません。
解決
om/update!
指定された値にカーソルを設定するので、基本的にカーソルに関数を割り当てる。私はあなたが代わりに使用するべきだと思います。
所属していません StackOverflow