如何在Clojure Reframe中保留更改的值

问题描述 投票:0回答:1

假设我有一组按钮,如果用户单击了按钮,我希望它将值从“未单击”更改为“已单击”,因此我已编写此代码]]

(rf/reg-sub
 ::clicked-sub
 (fn [db _]
   (:clicked db)))

(rf/reg-event-db
 ::clicked-event
 (fn [db [_ clicked-numb]]
   (assoc db :clicked clicked-numb)))

(defn button-group [numbers]
  [:div
   (for [number numbers]
     ^{:key number}
     [:button
      {
       :value (if (= number @(rf/subscribe [::clicked-sub])) "clicked" "not clicked")
       :on-click (fn [e] (rf/dispatch [::clicked-event number]))
       }
      ]
     )
   ]
  )

问题是,在用户单击另一个按钮之后,先前单击的按钮的值从“单击”更改为“未单击”。我希望它保持每个单击按钮的单击值,如何操作

假设我有一组按钮,如果用户单击了按钮,我希望它将值从“未单击”更改为“被单击”,所以我编写了这段代码(rf / reg-sub :: clicked-sub(fn [db _](:...

clojurescript re-frame
1个回答
0
投票

问题是db中的数据处理过于简单。您的事件始终会用当前数字覆盖clicked的值,因此查找/订阅总是仅返回最新单击的数字。

© www.soinside.com 2019 - 2024. All rights reserved.