如何从试剂原子向量中删除 key/value?
How to remove key/value from reagent atom vector?
我有一个试剂原子,它由 key/value 个图的矢量组成。
如何删除 key/value 键值对恰好是 UUID?我试过:
(交换!state/items (dissoc @state/items id))
但我得到:
core.cljs:270 未捕获错误:没有为 cljs 类型定义协议方法 IMap.-dissoc。core/LazySeq: ({:id #uuid "e1f9341f-bc02-4c17-a594-b9b5ede72214", :description "foo bar"})
我认为你需要使用 remove
。所以这应该有所帮助:
(def data [{:id "e1f9341f-bc02-4c17-a594-b9b5ede72214" :description "Foo"} {:id "e1f9341f-bc02-4c17-a594-b9b5ede72214" :description "Bar"}] )
(remove #(= (:id %) "e1f9341f-bc02-4c17-a594-b9b5ede72214") data)
;; => ()
swap!
函数采用旧值,returns采用更新值。所以上面的 data
将是旧值。您传递给 swap!
的函数将如下所示:
(fn [old]
(remove #(= (:id %) "e1f9341f-bc02-4c17-a594-b9b5ede72214") old))
我有一个试剂原子,它由 key/value 个图的矢量组成。
如何删除 key/value 键值对恰好是 UUID?我试过:
(交换!state/items (dissoc @state/items id))
但我得到:
core.cljs:270 未捕获错误:没有为 cljs 类型定义协议方法 IMap.-dissoc。core/LazySeq: ({:id #uuid "e1f9341f-bc02-4c17-a594-b9b5ede72214", :description "foo bar"})
我认为你需要使用 remove
。所以这应该有所帮助:
(def data [{:id "e1f9341f-bc02-4c17-a594-b9b5ede72214" :description "Foo"} {:id "e1f9341f-bc02-4c17-a594-b9b5ede72214" :description "Bar"}] )
(remove #(= (:id %) "e1f9341f-bc02-4c17-a594-b9b5ede72214") data)
;; => ()
swap!
函数采用旧值,returns采用更新值。所以上面的 data
将是旧值。您传递给 swap!
的函数将如下所示:
(fn [old]
(remove #(= (:id %) "e1f9341f-bc02-4c17-a594-b9b5ede72214") old))