Javascript 删除Reactjs Om组件(ClojureScript)

Javascript 删除Reactjs Om组件(ClojureScript),javascript,clojure,reactjs,clojurescript,om,Javascript,Clojure,Reactjs,Clojurescript,Om,我正在尝试使用om bootstrap的“pills”导航在网页中创建一个选项卡式窗口系统,单击链接时添加选项卡,单击选项卡上的X按钮时删除选项卡 我需要知道如何从全局状态/存储中添加和删除数据,以及如何创建一个宏,该宏可用于声明tab app组件,并使其在不再活动时自行删除 引用全球状态的最佳方式是什么当组件关闭时,我如何使其自身移除/卸载?由于移除子组件会影响其所有者,因此您应该让所有者(即“选项卡系统”)知道此选项卡需要关闭/销毁/删除 我在()中进行了深入研究,假设您销毁选项卡窗格的过程

我正在尝试使用om bootstrap的“pills”导航在网页中创建一个选项卡式窗口系统,单击链接时添加选项卡,单击选项卡上的X按钮时删除选项卡

我需要知道如何从全局状态/存储中添加和删除数据,以及如何创建一个宏,该宏可用于声明tab app组件,并使其在不再活动时自行删除


引用全球状态的最佳方式是什么当组件关闭时,我如何使其自身移除/卸载?

由于移除子组件会影响其所有者,因此您应该让所有者(即“选项卡系统”)知道此选项卡需要关闭/销毁/删除

我在()中进行了深入研究,假设您销毁选项卡窗格的过程与销毁TODO项的过程基本相同。到目前为止,我看不出有什么不对劲。以下是我的发现:

  • 。当应用程序启动时(
    IWillMount
    ),一个
    (chan)
    (来自
    core.async
    )被写入应用程序状态的
    :comm
  • 。来自通道的事件在代码后面的循环中以
    go
    -形式与它出现的块异步处理(其中
    是一种“类似于阻塞”的操作)。嗯,你可能知道,我没有,仍然在学习CLJS的全部内容
  • 。因此,它成为孩子们将事件发送到根目录的一种方式。我开始喜欢这个了
  • 这是在
    put中完成的使用
    comm
    通道调用,在链接行中获取。放置在那里的事件由(2)中定义的循环处理,该循环根据
    类型
    (伴随关键字)将它们委托给适当的函数

  • 我离ClojureScript专业版还差得远,但我正在学习。因此,如果上面的说法没有道理,这是正常的,意味着我不明白一些事情。如果事实证明是这样的话,让我回到正轨将是非常感激的。

    这是移除组件和通信的一个很好的例子-显然组件正在被销毁。但是,您只解释了通信。似乎更复杂的操作正在发挥作用。看一看,它将goog.ui IdGenerator包含在@user2491中使用的guid函数中。我看不出这与组件删除的相关性。最重要的是,
    (guid)
    只在基准测试之外使用一次,而且它会按照它的名字来做。你可能是对的,因为我在任何方面都不是专家,但它似乎对组件删除来说根本不需要core.async,实际上它是通过为每个子组件添加和删除唯一的ID来完成的。例如,我应该能够在父项上有“删除随机子项”按钮,而没有任何子项communication@user2491不,不是为了搬走。我在看一个孩子是如何自我毁灭的。我能想到的最好的办法就是告诉家长“杀了我”,TODOMVC使用了一个渠道。父母就是这样做的<代码>om/transact
    已定义:只需修改状态树并触发重新呈现。
    标记
    似乎只是一个“唯一事务键”,仅包含有关其功能的描述性信息。没有,这是为了什么,但似乎不是强制性的。