Я экспериментирую с рефреймингом Cljs, в котором я пытаюсь показать ячейку в пользовательском интерфейсе с помощью функции ниже,
(defn cell
[{:keys [id value on-change]}]
[(r/adapt-react-class Box) {:key id
:type :number
:ml 2
:content-editable (nil? value)
:on-change on-change
:border "2px solid #10AF34"
:width "30px"
:height "30px"
:align "center"}
value])
Когда я пытаюсь вызвать метод непосредственно из метода, вызываемого для рендеринга, он работает,
(defn app
[]
(cell {:id "1-1"
:value nil
:on-change #(js/alert "in cell 1 1")}))
Принимая во внимание, что когда я пытаюсь обернуть его в другой метод и вызвать, он не работает
(defn grid
[data]
(cell {:id "1-1"
:value 1
:on-change #(js/alert "in cell 1 1")}))
(defn app
[]
(grid (generate-data)))
Если кто-то хочет попробовать, grid/cell
доступен здесь и функция приложения/рендеринга доступна здесь.