考虑以下 clojurescript 代码,其中使用了 spectre、reagent 和 re-frame 框架,外部 React.js 网格组件用作视图组件。
在 db.cls 中:
(def default-db
{:cats [{:id 0 :data {:text "ROOT" :test 17} :prev nil :par nil}
{:id 1 :data {:text "Objects" :test 27} :prev nil :par 0}
{:id 2 :data {:text "Version" :test 37} :prev nil :par 1}
{:id 3 :data {:text "X1" :test 47} :prev nil :par 2}]})
在 subs.cls
(register-sub
:cats
(fn [db]
(reaction
(select [ALL :data] (t/tree-visitor (get @db :cats))))))
选择结果:
[{:text "ROOT", :test 17}
{:text "Objects", :test 27}
{:text "Version", :test 37}
{:text "X1", :test 47}]
在views.cls
(defn categorymanager []
(let [cats (re-frame/subscribe [:cats])]
[:> Reactable.Table
{:data (clj->js @cats)}]))
上面的代码按预期工作。
我不想使用 react.js 组件显示数据,而是想遍历 :cats 向量中的每个映射并在 html ul / li 中显示 :text 项。
我开始如下:
(defn categorymanager2 []
(let [cats (re-frame/subscribe [:cats])]
[:div
[:ul
(for [category @cats]
;;--- How to continue here ?? ---
)
))
预期输出:
ROOT
Objects
Version
X1
如何在重新框架中遍历订阅的集合并将数据显示为列表项?(=标题问题)。