Can you confirm that amt is a reagent ratom and not a clojure atom?

The on-change in the second example is not correct - the anonymous function
is thrown away and the dispatch runs on render. You probably wanted this:

#(do (reset! amt (-> % .-target .-value))
         (re-frame/dispatch [:update-value @amt]))

That is, the do is inside the function.

On Mon, 29 Jun 2015 15:18 Kurt Mueller <kurtronaldmuel...@gmail.com> wrote:

> I've asked this question on StackOverflow:
> http://stackoverflow.com/questions/31107633/re-frame-input-on-change-reset-doesnt-change-input-value
>
> I figure it couldn't hurt asking it here:
>
> ---
> In the code below, I am having trouble with updating the input value when
> the user types something in:
>
> ```
> (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}]])))
> ```
>
> The input value will not change until until I change :value to
> :defaultValue. I am pretty sure the above example closely mirrors Reagent's
> input example.
>
> ---
>
> In the code below, I am trying to do two things when the user updates the
> input value. I'm trying to reset! the input's value as well as dispatch the
> value to an event handler. I've wrapped up both of these function calls in
> a do call.
>
> Also of note is that in the code below, the user is able to update the
> value in the text field.
>
> ```
> (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}]])))
> ```
>
> In the javascript console, I get the following error:
>
> ```
> Uncaught TypeError: Cannot read property 'call' of null
> template.cljs?rel=1435381284083:101
> ```
>
> Any help is appreciated!
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at http://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to