我正在编写一个重新构建应用程序来模拟棋盘游戏,其中我有一个包含一组单元格的棋盘结构,例如:
{... :board-cells [{:name "cell-1" :material #object} {:name "cell-2" :material #object} ...]}
(db :board-cells)
虽然re -frame 支持使用漂亮的关键字语法((get (nth (db :board-cells) index) :material)
如 这也有将我的数据库的物理布局与我的应用程序逻辑紧密耦合的缺点。如果我决定改变我的数据库结构怎么办?然后我必须更新十个不同的点,而不仅仅是一个。
是否有一种重新构建官方方法来创建“虚拟查询”,这样我就可以获得类似的材料(db :get-nth-mat n)
,其中 n 是board-cells
数组中的单元格编号?我认为这是我可以做到db.cljs
的reg-sub
地方,但它似乎不起作用。是的,我可以创建自己的吸气剂:
(defn get-material [db index]
(get (nth (db :board-cells) index) :material))
并称它为(println "mat-4=" (cell/get-material db 4))
,但这并不像(db :get-nth-mat n)
非常感谢。