在re-frame todomvc app todo-item函数中%字符是什么意思?

时间:2016-05-12 20:45:47

标签: clojure clojurescript reagent re-frame

re-frame todomvc views namespace包含一个函数todo-item,其中包含以下代码段:

(when @editing
         [todo-edit {:class "edit"
                     :title title
                     :on-save #(dispatch [:save id %])
                     :on-stop #(reset! editing false)}])

:on-save键传递给todo-input函数并在其中使用,该函数包含以下代码段:

let [val (atom title)
        stop #(do (reset! val "")
                  (if on-stop (on-stop)))
        save #(let [v (-> @val str clojure.string/trim)]
               (if-not (empty? v) (on-save v))
               (stop))]

第一个代码段中%字符的含义是什么:

:on-save #(dispatch [:save id %])

我应该如何解释第二个片段:

(on-save v)

找到todomvc views namespace here.

1 个答案:

答案 0 :(得分:2)

这是此内联匿名函数定义的简写

(fn [x] 
  (dispatch [:save id x]))

欲了解更多信息,请参阅: