jma*_*svt 1 clojure hiccup clojurescript reagent
我正在使用 Reagent 和 CLJS,熟悉 React 和 Clojure,不太熟悉 CLJS。我想做一个简单的表单,但在 CLJS 中对我来说并不明显。
(defn form []
[:div
[:input {:type "text" :name "first-name" :id "first-name"}]
[:button {:on-click (fn [e] (test-func "hello"))}
"Click me!"]
])
Run Code Online (Sandbox Code Playgroud)
我想获取该输入的值,并在单击按钮时将其传递给函数。我如何将该输入的值放入我的on-click函数中?
惯用且技术上正确的方法是避免在 DOM 中保留任何状态并直接访问它。你不应该依赖输入的值。保持状态为试剂的原子。然后你可以用它做任何事情。
(def first-name (r/atom ""))
(defn form []
[:div
[:input {:type "text"
:value @first-name
:on-change #(reset! first-name (.-value (.-target %)))
}]
[:button {:on-click #(test-func @first-name)} "Click me!"]])
Run Code Online (Sandbox Code Playgroud)