Получение "бесконечного типа для выражения" для запроса / запроса от Halogen - PullRequest
0 голосов
/ 10 ноября 2018

В моем компоненте:

data Query a = SetImageUrl Int String a

Основной компонент (приложение):

  eval :: Query ~> H.ParentDSL State Query ChildQuery ChildSlot Void m
  eval = case _ of
    HandleItemChange groupId (LIS.ActiveChanged selected) next -> do
      let apReq = AP.SetImageUrl groupId (imageUrl selected)
      _ <- H.query' CP.cp2 AvatarPictureSlot (H.request apReq)
      pure next

Компилятор говорит:

[1/1 InfiniteType] src/App.purs:85:57

  85        _ <- H.query' CP.cp2 AvatarPictureSlot (H.request apReq)
                                                              ^^^^^

  An infinite type was inferred for an expression:

    t0 -> t0

  while trying to match type t0 -> t0
    with type t0
  while checking that expression apReq
    has type (t0 -> t0) -> t1 t0
  in value declaration app

  where t0 is an unknown type
        t1 is an unknown type

Я думаю, что слоты и дочерние пути в порядке, потому что render функция компилируется и работает правильно.

Как исправить эту ошибку? Я проверил несколько раз по руководству, но я просто не вижу никакой разницы, и сообщение компилятора очень бесполезно (для меня).

1 Ответ

0 голосов
/ 11 ноября 2018

Раствор из github:

  _ <- H.query' CP.cp2 AvatarPictureSlot (H.action apReq)

Для запросов, не возвращающих ничего, следует использовать H.action, а не H.request.

...