私は、Clojure と Reagent をほとんど経験のない状態で実験しており、単純なタイマーを作成しようとしています。
(defn reset-component [t]
[:input {:type "button" :value "Reset"
:on-click #(reset! t 60)}])
(defn countdown-component []
(let [seconds-left (atom 60)]
(fn []
(js/setTimeout #(swap! seconds-left dec) 1000)
[:div.timer
[:div "Time Remaining: " (show-time @seconds-left)]
[reset-component seconds-left]])))
リセット ボタンを押すまで、タイマーのカウントダウンは正しく機能しているように見えます。その後、タイマーは 2 倍の速さでカウントダウンを開始します。リセットボタンを押すたびに、カウントダウンが速くなります。
ページがロードされたときにタイマーが自動的にカウントダウンするようにするにはどうすればよいですか?