1

假设我有一个带有如下图向量的试剂原子:

(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! ??? - ???)
4

1 回答 1

2

assoc-in适用于关联结构的任何嵌套,包括向量内的映射*。因此,我建议使用swap!withassoc-in

  (swap! my-atom assoc-in [vector-index key] new-value)

*:同样update-in,如果您想使用旧值的函数而不是“这是新值”。

于 2015-11-22T11:53:33.893 回答