Skip to content

Instantly share code, notes, and snippets.

@swannodette
Last active December 30, 2015 05:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swannodette/7782780 to your computer and use it in GitHub Desktop.
Save swannodette/7782780 to your computer and use it in GitHub Desktop.
(ns react-cljs.core
(:require React))
(enable-console-print!)
(declare render-ui)
(defn render-counter [id state root]
(let [cnt (or (get-in state [id :count]) 0)]
(React/DOM.div nil
(array
(React/DOM.label nil cnt)
(React/DOM.button
(js-obj "onClick" #(root (assoc-in state [id :count] (inc cnt))))
"+")
(React/DOM.button
(js-obj "onClick" #(root (assoc-in state [id :count] (dec cnt))))
"-")))))
(defn render-ui [n]
(letfn [(root [state]
(React/renderComponent
(React/DOM.div nil
(into-array
(concat
[(React/DOM.h1 nil "A Counting Widget!")]
(map #(render-counter % state root) (range n)))))
js/document.body))]
(root (zipmap (range n) nil))))
(render-ui 10)
@geraldodev
Copy link

(zipmap (range 10) nil) returns {}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment