2017-06-03 71 views
3

我对于purescript和卤素绝对陌生。我试图在HTML元素存在时显示卤素组件(myButton),否则不做任何事情。当html元素不存在时不要运行卤素组件

displayButton :: Eff (HA.HalogenEffects()) Unit 
displayButton = HA.runHalogenAff do 
    containerElement <- HA.selectElement (QuerySelector "#halogen-button") 
    case containerElement of 
    Nothing -> ??? 
    Just element -> runUI myButton unit element 

我不知道该怎么把代码没有子句中,使我的代码类型检查,什么也不做在这种情况下。 。

回答

1

pure unit是“什么也不做”,你能不能把你也可以使用for_使之成为一个更好一点:

for_ containerElement \element -> 
    runUI myButton unit element 

其中,如果拿钻营进去是一样的:

for_ containerElement (runUI myButton unit) 
+0

没有解决方案(“纯单位”或“for_”之一)编译。他们都给我错误:'无法匹配类型{查询::全部a。查询a - > Aff(avar :: AVAR,ref :: REF,exception :: EXCEPTION,dom :: DOM | t2)a,subscribe :: FreeT(等待消息)(Aff(avar :: AVAR,ref :: REF ,异常:: EXCEPTION,dom :: DOM | t2))Unit - > Aff(avar :: AVAR,ref :: REF,exception :: EXCEPTION,dom :: DOM | t2)Unit} with Unit' –

+1

There are two在purescript中有for_'s。来自Control.Safely的那个给出了上面的错误。但从Data.Foldable的代码编译,似乎是有效的工作。谢谢。 –

+0

另一个适用于“无所事事”部分的表达式是'Data.Monoid.mempty'。 –