我正在玩这个re-frame
框架。
在下面的代码中,当用户输入内容时,我无法更新输入值:
(defn measurement-input [{:keys [amount unit path]}]
(let [amt (atom amount)]
(fn []
[:div
[:input {:type "text"
:value @amt
:on-change #(reset! amt (-> % .-target .-value))}]
[:input {:type "button"
:value unit}]])))
:value
在我更改为之前,输入值不会更改:defaultValue
。我很确定上面的例子与Reagent
输入的例子很相似。
在下面的代码中,当用户更新输入值时,我尝试做两件事。我正在尝试reset!
输入的值以及dispatch
事件处理程序的值。我已经将这两个函数调用都包含在一个do
调用中。
另外值得注意的是,在下面的代码中,用户可以更新文本字段中的值。
(defn measurement-input [{:keys [amount unit path]}]
(let [amt (atom amount)]
(fn []
[:div
[:input {:type "text"
:value @amt
:on-change (do #(reset! amt (-> % .-target .-value))
(re-frame/dispatch [:update-value @amt]))}]
[:input {:type "button"
:value unit}]])))
在 javascript 控制台中,我收到以下错误:
Uncaught TypeError: Cannot read property 'call' of null template.cljs?rel=1435381284083:101
感谢大家的任何帮助!