假设我有一组按钮,如果用户单击了按钮,我希望它将值从“未单击”更改为“已单击”,因此我已编写此代码]]
(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 _](:...
问题是db
中的数据处理过于简单。您的事件始终会用当前数字覆盖clicked
的值,因此查找/订阅总是仅返回最新单击的数字。