2017-09-20 14 views
3

의 상태를 조작올바르게 난 그냥 몇 가지 자습서를 따라하고 있지만, 어쩌면 나는 상태</p> <pre><code>(defonce app-state (atom {:text "Hello Chestnut!" :click-count 0})) </code></pre> <p>렌더링 된 뷰에 대해이 코드를 가지고 뭔가를 그리워, 그냥 Clojurescript에 시약을 배울 시약

(defn article [] 
    [:div 
    [:div "The atom" [:code "click-count"] " has value : " (:click-count @app-state)] 
    [:input {:type "button" :value "Add" 
      :on-click #(swap! (:click-count @app-state) inc)}] 
    ] 
) 

단추를 눌렀을 때 상태를 증가 시키려고하는데 콘솔에서이 오류가 발생했습니다.

+1

유용한 문서 : https://clojuredocs.org/clojure.core/swap! – Bill

+1

나는 그것을 읽었지 만 고마워. – Ampersanda

답변

3

원자가 스왑되지 않아야합니다 : 클릭 수

(swap! app-state update :click-count inc) 
+0

와우 .. 나는 (스왑! @ 앱 상태 업데이트 인 [: click-count] inc) 시도했지만 작동하지 않습니다. @ 기호가 필요한 이유는 무엇입니까? – Ampersanda

+1

@를 사용하면 원자의 현재 상태 만 가져오고 상태를 변경하려면 원자 자체를 교체해야합니다. –

+0

고맙습니다. – Ampersanda