次の架空の単純化された clojurescript スニペットを検討してください。
(def cat (r/atom [{:id 0 :data {:text "ROOT" :test 17} :prev nil :par nil}
{:id 1 :data {:text "Objects" :test 27} :prev nil :par 0}
{:id 2 :data {:text "Version" :test 37} :prev nil :par 1}]))
(defn categorymanager [s]
[:div
[:> Reactable.Table
{:data (clj->js
s
)}
]
]
)
(defn content []
(fn []
[:div
[:h1 "Test"]
(categorymanager (select [ALL :data] (t/tree-visitor @cat)))
[re-com/button :label "Do not click!"]
]
))
content 関数は Reagent コンポーネントを準備します。コード スニペットは期待どおりに機能します。( 'select' 関数は Spectre ライブラリの一部です。)
たとえば REPL 内の関数で cat アトムが変更されたときに、ブラウザーの React.js コンポーネントが変更されるように、最小限のリフレーム コードを追加したいと思います。サブスクリプションとハンドラーの再フレーム化に関する理論は知っていますが、このような最小限の例で機能させることができなかったため、理論的にのみです。それはどのように行われますか?Re-frame サブスクリプションとハンドラーを使用して Reagent コンポーネントに変更をプッシュする方法は?