Получить событие клавиатуры в purescript - PullRequest
1 голос
/ 10 марта 2019

Я хочу получить событие keydown в purescript, поэтому я использовал 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, так чтоЯ не уверен, что я должен сделать, чтобы решить эту проблему.Что я могу сделать?

1 Ответ

0 голосов
/ 10 марта 2019

Блок, который вы передаете halogenRunAff, является блоком Aff, поэтому каждая строка в нем должна быть Aff. Но liftEff вместо этого возвращает Eff. Так что есть несоответствие.

Это то, что говорит вам компилятор: «не могу сопоставить Eff с Aff».

Чтобы это исправить, замените liftEff на liftAff:

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