1

基本的なチュートリアルから学んで、Om を試しているところです。

私のプログラムデータは単一のアトムにあります: app-state.

そのアトムにシーケンスを入れると、たとえば。

(defonce app-state (atom {:things [1 2 3 4]}))

その後、レンダリングでカーソルを取得できます

(let [things (:things data)] ... )

そしてそれを横切ってマップします:

(map #(* % %) things)

ただし、シーケンスを返すことができるメソッドを持つ defrecord がある場合:

(defrecord ThingCollection [xs]
    IThingCollection
    (getSeq [this] ... ) )

THATをアプリケーション状態にします

(defonce app-state (atom {:things (->ThingCollection [1 2 3 4]})))

...

(let [things (:things data)] ... )

私はこれを行うことはできません:

(map #(* % %) (.getSeq things))

カーソルにメソッド .getSeq がないというエラーがスローされるだけです

それは理にかなっている。しかし、カーソル内の ThingCollection オブジェクトを実際に取得するにはどうすればよいでしょうか? これの例は見つかりません。そして、私が試したことは何も私にそれを与えないようです.

4

1 に答える 1