在榆木的Http 1.0.0
包中,我可以发送自定义请求,例如:
post : Endoint -> List (Http.Header) -> Http.Body -> Decoder a -> Http.Request a
post url headers body decoder =
Http.request
{ method = "POST"
, headers = headers
, url = url
, body = body
, expect = Http.expectJson decoder
, timeout = Nothing
, withCredentials = False
}
使用我上面编写的post
函数,我可以简单地用一个Decoder String
来调用它,并且在Http请求发送之后,响应字符串将被解码并返回。期。无需创建Msg
,例如:
type Msg
= GotText (Result Http.Error String)
并且无需在update
中编写分支来处理此Msg
。
但是,从Http 2.0.0
开始,expect
自变量的类型为Expect msg
,而不是Expect a
,这意味着现在将必需写为Msg
变体和要更新的其他分支。] >
我正在编写一个发出Http请求的Api.elm
文件。但是,这意味着现在这些请求响应后,它必须具有自己的Msg
类型和update
函数才能运行。
[我曾经认为Home.elm
应该仅响应来自Home.Msg
和Home.update
的消息,而不是Api.Msg
和Api.update
。我错了吗? Api.elm
是否应具有自己的Msg
类型和可以更改其他页面的update
功能?还是会有更好的方法来做到这一点?
在榆木的Http 1.0.0包中,我可以发送自定义请求,例如:post:Endoint->列表(Http.Header)-> Http.Body->解码器a-> Http.Request发布URL头标头主体解码器= Http ....
[澄清我在问题中的解释: