【发布时间】:2015-10-17 10:23:41
【问题描述】:
在应该隐藏该组件的单个组件之外处理单击的正确方法是什么?
此类组件的示例可能是下拉菜单、日期选择器等。当我们点击外部时,我们通常希望它们隐藏起来。但要做到这一点,我们似乎必须执行一些“不纯”的技巧,我不确定如何在 FRP 风格中避免这些技巧。
我搜索了相关的 React 示例以获取想法,并找到了 this,但它们似乎都依赖于将回调附加到全局对象,然后修改内部组件的状态。
【问题讨论】:
-
你不能尝试一些类似于你找到的 React 的东西吗?全局点击处理程序发送一个在组件父级的
update函数中处理的Action(或组件本身,如果您认为它是知道何时隐藏的任务的一部分),并评估是否需要某些东西被隐藏,然后反映在你的Model。 -
感谢您的建议,我会尝试做类似的事情,如果它可行,我将使用我的大多数解决方案(我只需要先了解更多关于 Native js 模块的信息)。我对这条路径的主要关注(假设您的意思是在安装/卸载事件上附加处理程序,例如在 React 解决方案上)是,如果我们无论如何都要打破强加的限制,这可能会破坏 FRP 的目的。但我意识到,如果只在诸如此类的极少数情况下使用它可能没问题。
-
我不知道合适的 in-Elm 解决方案,所以我建议您现在复制 React 解决方案来解决您的问题。但是请在邮件列表上讨论这个问题。应该有一个不需要这些黑客的适当解决方案;)
-
好的,稍后会在邮件列表中发帖(似乎更活跃)
标签: elm