purescript-halogen
中是否有一个函数用id
来选择元素,或者我需要自定义角色(这对我来说似乎很奇怪)。
我正在阅读有关Pursuit的文档,我在selectElement
中看到了Util
函数,但我在任何地方都看不到允许我按id
选择的内容。
我可以使用getElementById :: ElementId -> NonElementParentNode -> Eff () (Nullable Element)
获取Element
,但我不知道如何将此Element
转换为HTMLElement
。
Pursuit中的类型搜索功能也缺乏,所以我为这个天真的问题道歉。
答案 0 :(得分:3)
在处理使用虚拟DOM的库时,通常不应该这样做,因为如果通过id保存对元素的引用,它最终会过时并引用完全不同的元素,或者是一个元素,不再附加到DOM。
获取元素的方法是使用ref
,有一个使用它in this section of the guide的示例。它的工作方式类似于事件处理程序,只要元素存在或被删除,就会在组件上引发查询。如果您使用更新组件状态中的引用的查询,则可以确定您始终拥有所需的实际元素(如果由于某种原因它不存在,则为Nothing
。)
如果确实想要使用getElementById
,那么it is available from purescript-dom
。它不是卤素的一部分,因为卤素不适用于通用DOM操作。这些实用程序功能仅用于初始化Halogen应用程序。