Reagent React Clojurescript Warnung: Jedes Element in einer Sequenz sollte einen eindeutigen: key @ habe

Ich habe eine zwei Jahre alte Zusammenfassung von @ kopierHie. Es funktioniert jetzt mit Figwheel und verwendet eine neuere Version von Reagent / React. Ich suche nach einer generischen Methode zum Isolieren dieser Warnmeldung, die an der Javascript-Konsole angezeigt wird:Warning: Every element in a seq should have a unique :key. Die Idee ist, ein @ zu setz:key mit einem generierten eindeutigen Wert für alle Komponenten. Dann sollten die Nachrichten verschwinden und ich werde in der Lage sein zu sehen, welche Komponenten das einzigartige @ benötigte:key. Mein Problem ist, dass obwohl ein eindeutiges:key wird in alle eingefügt, die Warnmeldung wird weiterhin angezeigt.

So - könnte mir jemand sagen welche komponente ich verpasst habe oder sonst was ich falsch gemacht habe? Wie Sie aus dem @ sehen könnsource (permalink) Ich habe hinzugefügt:key (gen-key) zu den beiden Komponenten:[:polyline {:key (gen-key) ... und[:svg {:key (gen-key) ... in den Zeilen 43 und 68.

Bearbeite Also das ist dasanswer (permalink), in Bezug auf den Code trotzdem. Suchen Sie einfach nach der Platzierung von^{:key (gen-key)} in den Zeilen 44 und 60.

Beachten Sie, dass die Funktiongen-key wurde für das Debuggen gemacht. Zu ersetzende natürliche Schlüssel.

Dies ist, wie Sie implementieren könntengen-key:

(defn gen-key []
  (gensym "key-"))

Und so geht's in den obigen Links:

(def uniqkey (atom 0))
(defn gen-key []
  (let [res (swap! uniqkey inc)]
    (u/log res)
    res))

Antworten auf die Frage(4)

Ihre Antwort auf die Frage