これは、新しいフレームワークを学習するときに誰もが発見するばかげた/複雑なことの 1 つに違いありません。だから私はこの機能を持っています:
(defn display-questions-list
[]
(let [counter (atom 1)]
[:div
(doall (for [question @(rf/subscribe [:questions])]
^{:key (swap! counter inc)} [question-item (assoc question :counter @counter)])])))
@counterアトムは重要なデータを保持しません。これは、リストに数値を表示するための単なる「視覚的な」カウンターです。ページが初めて読み込まれると、すべて正常に動作します。リストに表示される質問が 5 つ (1..5) の場合、問題は、質問がサブスクリプションを作成/編集/削除したときです。
@(rf/subscribe [:questions])
が再度呼び出され、もちろんリストが表示されますが、現在は 6 から 11 です。そのため、@counter をリセットする方法が必要です。