我想我可能会错过purescript-dom
模块中的一个关键函数,以便从Node转换为特定的元素类型。例如,如果我有Event
,我可以使用DOM.Events.Events.target来获取Node,但似乎获取特定元素的唯一方法是使用unsafeCoerce
,例如
import DOM.Event.Event (target)
import DOM.HTML.HTMLInputElement (value)
eval (InputChange event next) = do
-- Get the value of the HTMLInputElement assuming it is one
v <- H.liftEff $ value (unsafeCoerce $ target event)
H.liftEff $ log "Input field change"
H.liftEff $ log v
pure next
有更好的方法从节点转换为元素类型吗?
答案 0 :(得分:4)
当您想要转发toForeign
/元素类型时,我们的想法是使用readHTMLInputElement
然后使用Node
。
虽然经常写这样的东西很烦人,所以purescript-dom-classy
旨在消除它的一些痛苦。除了避免toForeign
步骤,您只需要Maybe
来处理,而不是Except
read
函数将返回。