私は自分のプロジェクトを与えられた試薬を使用して状態に適した設計に向けて進化しており、まだ別個の原子を使用している間 (おそらく単一の原子に切り替える予定ですが、現在は可能性のある空間を探索しようとしています)、私は以下に示すように、ルートコンポーネントのレキシカルコンテキストですべての状態を設定しようとしました。これapp-state
は、各キーの値が試薬アトムである通常の clojure マップであるという考えです。
attrs
これはprop ( data-
html 要素の attrs から来る)である map を受け取り、その仕事はapp-state
mapを初期化することです。問題は、これらすべてのs がファイルの先頭で宣言されたときに定義されていたことです。これは私が切り替えたばかりであり、セマンティクスが失われ、フィグホイールのホットリロードが壊れています。r/atom
r/atom
r/atom
defonce
defonce
このスタイルで状態を設定する際に再読み込み可能なコードを保持する方法はありますか?
defonce
a の中に aを入れることはできませんlet
。これ以降、評価されると nil と評価されるためです。
または、ここで見逃しているパターンがあります。
(defn a-root-component [attrs]
(let [app-state {:some-state (r/atom (:some-state attrs))}]
(fn [attrs]
[some-component app-state])))