Я играю с фреймворком 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
Любая помощь приветствуется всеми!