我有一个嵌套结构(也可以深层嵌套)。所有嵌套实体都标记为组件。创作很好。
{:db/id (d/tempid :db.part/user)
:tree/name "some tree"
:tree/nodes [{:node/name "Node1"
:node/prop "some prop"}
{:node/name "Node2"
:node/prop "another prop"}]}
让我们说上面的树是创建的。我拉它进行更新,它看起来像这样:
{:db/id 1
:tree/name "some tree"
:tree/nodes [{:db/id 2
:node/name "Node1"
:node/prop "some prop"}
{:db/id 3
:node/name "Node2"
:node/prop "another prop"}]}
从UI中删除第一个节点:
{:db/id 1
:tree/name "some tree"
:tree/nodes [{:db/id 3
:node/name "Node2"
:node/prop "another prop"}]}
如何使用db / id 2自动删除节点?我唯一能想到的就是拉动节点并将它们与我提交的节点进行比较。因为结构可以更深入地嵌套,所以我需要递归遍历集合。有更自动的方法吗?
答案 0 :(得分:1)
内置事务函数retractEntity
将递归收回组件实体:
{{3}}