我从这里复制了一个两年前的要点。它现在正在使用 Figwheel 并使用更新版本的 Reagent/React。我正在寻找一种通用方法来隔离来自 Javascript 控制台的此警告消息:Warning: Every element in a seq should have a unique :key
. 这个想法是将:key
具有生成的唯一值的 a 放入所有组件中。然后消息应该会消失,我将能够查看哪些组件需要 unique :key
。我的问题是,即使:key
所有这些都放入了唯一的,但仍然可以看到警告消息。
那么 - 有人能告诉我我错过了哪个组件或者我做错了什么吗?正如您从源代码(永久链接)中看到的那样,我已添加:key (gen-key)
到这两个组件中:分别在第 43 行和第 68 行[:polyline {:key (gen-key) ...
。[:svg {:key (gen-key) ...
编辑所以这就是答案(永久链接),无论如何就代码而言。只需查找第^{:key (gen-key)}
44 行和第 60 行的位置。
请注意,该函数gen-key
是为调试而设计的。替换的自然键。
这就是你可能实现的方式gen-key
:
(defn gen-key []
(gensym "key-"))
这是上面链接中完成的方式:
(def uniqkey (atom 0))
(defn gen-key []
(let [res (swap! uniqkey inc)]
(u/log res)
res))