2

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

我需要知道如何从全局状态/存储中添加和删除数据,并创建一个可用于声明选项卡应用程序组件的宏,并使其在不再存在时自行删除。

引用全局状态的最佳方法是什么?如何让组件在关闭时自行移除/卸载?

4

1 回答 1

0

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

我已经深入研究了todomvc示例live),假设您销毁选项卡窗格的过程与销毁 TODO 项目的过程几乎相同。到目前为止,我没有看到任何冲突。以下是我的发现:

  1. 使用了一个频道...... 当应用程序启动 (IWillMount) 时,a(chan)(fromkeycore.async处写入应用程序状态:comm
  2. ...用于事件处理... 来自通道的事件在该代码之后的循环中处理,以go形式与它出现的块异步(<!作为“有点阻塞”操作)。好吧,你可能知道,我不知道,仍在学习 CLJS 的全部内容。
  3. ...传递给所有子项的初始状态... 因此,它成为孩子向根发送事件的一种方式。我开始喜欢这个了。
  4. ...这样他们就可以将事件发送给他们的父母!这是在通道put!调用comm放在那里的事件由(2)中定义的循环处理,该循环根据type(伴随关键字)将它们委托给适当的函数。

我离 ClojureScript 专业人士还差得很远,但我正在学习。所以如果以上没有意义,这是正常的,意味着我不明白一些事情。如果事实证明是这样,让我重回正轨将不胜感激。

于 2015-07-15T15:15:55.087 回答