【问题标题】:Get keyboard event in purescript在纯脚本中获取键盘事件
【发布时间】:2019-03-10 01:01:58
【问题描述】:

我想在 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 的新手,所以我不确定我必须做些什么来解决这个问题。 我能做什么?

【问题讨论】:

    标签: purescript purescript-halogen


    【解决方案1】:

    您传递给halogenRunAff 的块是Aff 块,因此其中的每一行都必须是Aff。但是liftEff 会返回Eff。所以存在不匹配。

    这就是编译器告诉你的:“不能将 Eff 与 Aff 匹配”。

    要解决此问题,请将 liftEff 替换为 liftAff

    documenttarget <- liftAff $ window >>= document <#> DHT.htmlDocumentToEventTarget 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 2013-08-02
      • 2011-11-25
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多