假设我有一个带有这样的地图矢量的试剂原子:
(def my-atom (reagent/atom [{:id 1 :name "first name"}
{:id 2 :name "second name"}]))
如何将某个向量索引处的键值更新为:
[{:id 1 :name "first name"}
{:id 2 :name "UPDATED second name"}]
我正在寻找像(update-my-atom 1 :name "UPDATED second name")
这样的函数:
(defn update-my-atom
[vector-index key new-value]
(swap! ??? - ???)
答案 0 :(得分:2)
assoc-in
适用于任何关联结构嵌套,包括向量*内的映射。因此,我建议swap!
使用assoc-in
(swap! my-atom assoc-in [vector-index key] new-value)
*:与update-in
一样,如果您想使用旧值的函数而不是“这是新值”。