如何避免在Elm中使用HTTP 2.0.0来期望MSG?

问题描述 投票:4回答:1

在榆木的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.MsgHome.update的消息,而不是Api.MsgApi.update。我错了吗? Api.elm是否应具有自己的Msg类型和可以更改其他页面的update功能?还是会有更好的方法来做到这一点?

在榆木的Http 1.0.0包中,我可以发送自定义请求,例如:post:Endoint->列表(Http.Header)-> Http.Body->解码器a-> Http.Request发布URL头标头主体解码器= Http ....

elm
1个回答
1
投票

[澄清我在问题中的解释:

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.