在我的组件中:
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
函数可以编译并正常工作。
如何解决此错误?,我根据指南进行了多次检查,但我看不出有任何区别,并且编译器消息对我无济于事。
答案 0 :(得分:0)
来自github的解决方案:
_ <- H.query' CP.cp2 AvatarPictureSlot (H.action apReq)
对于不返回任何内容的查询,应使用H.action
而不是H.request
。