Я играю с рамкой re-frame
.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
.
В приведенном ниже коде я пытаюсь сделать две вещи, когда пользователь обновляет входное значение. Я пытаюсь указать значение ввода, а также значение 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
любая помощь всем!