clojurescript 试剂交换!原子否定原子值
clojurescript reagent swap! atom negate atom value
我试图反转试剂原子的值变化
(def changeval(reagent/atom 0))
...
...
[:input {:type "button" :value "Invert!"
:on-click #(swap! changeval(not= changeval0 ) ) }]
没有任何反应,我怎样才能使 changeval = NOT(changeval)
swap!
的第三个参数是一个函数。所以我猜应该是:
#(swap! changeval (partial not= changeval0))
我认为 changeval0
是一个拼写错误,您需要一个布尔值。在这种情况下,请查看 Piotrek 的回答。
检查 swap!
函数的签名:
(swap! atom f)
(swap! atom f x)
(swap! atom f x y)
(swap! atom f x y & args)
Atomically swaps the value of atom to be:
(apply f current-value-of-atom args)
. Note that f may be called
multiple times, and thus should be free of side effects. Returns
the value that was swapped in.
因此要否定原子中的值(它与 Clojure 和 Reagent 的原子一样工作)使用 not
函数(在你的情况下不会有额外的参数,因为你将只使用当前原子值):
(def value (atom true))
(swap! value not)
;; => false
(swap! value not)
;; => true
我试图反转试剂原子的值变化
(def changeval(reagent/atom 0))
...
...
[:input {:type "button" :value "Invert!"
:on-click #(swap! changeval(not= changeval0 ) ) }]
没有任何反应,我怎样才能使 changeval = NOT(changeval)
swap!
的第三个参数是一个函数。所以我猜应该是:
#(swap! changeval (partial not= changeval0))
我认为 changeval0
是一个拼写错误,您需要一个布尔值。在这种情况下,请查看 Piotrek 的回答。
检查 swap!
函数的签名:
(swap! atom f)
(swap! atom f x)
(swap! atom f x y)
(swap! atom f x y & args)
Atomically swaps the value of atom to be:
(apply f current-value-of-atom args)
. Note that f may be called multiple times, and thus should be free of side effects. Returns the value that was swapped in.
因此要否定原子中的值(它与 Clojure 和 Reagent 的原子一样工作)使用 not
函数(在你的情况下不会有额外的参数,因为你将只使用当前原子值):
(def value (atom true))
(swap! value not)
;; => false
(swap! value not)
;; => true