質問

私は次のコードを持っています、そして私は基本的に間違って何かをしていると思います。

(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! 指定された値にカーソルを設定するので、基本的にカーソルに関数を割り当てる。私はあなたが代わりに使用するべきだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top