2017-06-03 20 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'。 –

相關問題