我想用purescript获取keydown事件,所以我使用了DomEvent。 这是我的代码。
main :: Eff (HA.HalogenEffects (console :: CONSOLE, timer :: T.TIMER)) Unit
main = HA.runHalogenAff do
body <- HA.awaitBody
cube <- runUI C.cubes unit body
documenttarget <- liftEff $ window >>= document <#> DHT.htmlDocumentToEventTarget
addEventListener (EventType "keydown") (eventListener test) true (documenttarget)
H.liftEff $ T.setInterval (1000 / frameRate) do
HA.runHalogenAff $ cube.query $ H.action C.Tick
当我尝试运行此代码时,出现这样的错误。
documenttarget <- liftEff $ window >>= document <#> DHT.htmlDocumentToEventTarget
Coudn't match type Eff with type Aff
我了解aff和eff,但是我是purescript的新手,所以我不确定该如何解决。 我该怎么办?
答案 0 :(得分:0)
您传递给halogenRunAff
的块是Aff
块,因此其中的每一行都必须是Aff
。但是liftEff
会返回Eff
。因此不匹配。
这就是编译器告诉您的:“无法将Eff与Aff匹配”。
要解决此问题,请将liftEff
替换为liftAff
:
documenttarget <- liftAff $ window >>= document <#> DHT.htmlDocumentToEventTarget