2

クイズ テストの一連の問題を表示しています。ブラウザに表示されるときに番号を付けるために、各問題に番号を割り当てています。

(defn questions-list
 []
  (let [counter (atom 0)]
    (fn []
      (into [:section]
           (for [question @(re-frame/subscribe [:questions])]
              [display-question (assoc question :counter (swap! counter inc))])))))

問題は、誰かがブラウザで質問を編集すると (そしてディスパッチが呼び出され、「app-db」マップが更新されると)、コンポーネントは再レンダリングされますが、アトム「カウンター」はゼロからではなく最後の番号から論理的に開始されることです。 . そのため、アトムをリセットする必要がありますが、どこにあるのかわかりません。匿名関数内でletを試してみましたが、うまくいきませんでした。

4

2 に答える 2